01: /*
02: * IzPack - Copyright 2001-2008 Julien Ponge, All Rights Reserved.
03: *
04: * http://izpack.org/
05: * http://izpack.codehaus.org/
06: *
07: * Copyright 2004 Klaus Bartz
08: *
09: * Licensed under the Apache License, Version 2.0 (the "License");
10: * you may not use this file except in compliance with the License.
11: * You may obtain a copy of the License at
12: *
13: * http://www.apache.org/licenses/LICENSE-2.0
14: *
15: * Unless required by applicable law or agreed to in writing, software
16: * distributed under the License is distributed on an "AS IS" BASIS,
17: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18: * See the License for the specific language governing permissions and
19: * limitations under the License.
20: */
21:
22: package com.izforge.izpack;
23:
24: import com.izforge.izpack.util.OsConstraint;
25:
26: import java.io.Serializable;
27: import java.util.List;
28:
29: /**
30: * Container for serialized custom data.
31: *
32: * @author Klaus Bartz
33: */
34: public class CustomData implements Serializable {
35:
36: static final long serialVersionUID = 5504496325961965576L;
37:
38: /** Identifier for custom data type "installer listener". */
39: public static final int INSTALLER_LISTENER = 0;
40:
41: /** Identifier for custom data typ "uninstaller listener". */
42: public static final int UNINSTALLER_LISTENER = 1;
43:
44: /**
45: * Identifier for custom data typ "uninstaller lib". This is used for binary libs (DLLs or SHLs
46: * or SOs or ...) which will be needed from the uninstaller.
47: */
48: public static final int UNINSTALLER_LIB = 2;
49:
50: /** Identifier for custom data typ "uninstaller jar files". */
51: public static final int UNINSTALLER_JAR = 3;
52:
53: /**
54: * The contens of the managed custom data. If it is a listener or a uninstaller jar, all
55: * contained files are listed with it complete sub path. If it is a uninstaller native library,
56: * this value is the path in the installer jar.
57: */
58: public List<String> contents;
59:
60: /**
61: * Full qualified name of the managed listener. If type is not a listener, this value is
62: * undefined.
63: */
64: public String listenerName;
65:
66: /** The target operation system of this custom action */
67: public List<OsConstraint> osConstraints = null;
68:
69: /**
70: * Type of this custom action data; possible are INSTALLER_LISTENER, UNINSTALLER_LISTENER,
71: * UNINSTALLER_LIB and UNINSTALLER_JAR.
72: */
73: public int type = 0;
74:
75: /**
76: * Constructs an CustomData object with the needed values. If a listener will be managed with
77: * this object, the full qualified name of the listener self must be set as listener name. If a
78: * listener or a jar file for uninstall will be managed, all needed files (class, properties and
79: * so on) must be referenced in the contents with the path which they have in the installer jar
80: * file.
81: *
82: * @param listenerName path of the listener
83: * @param contents also needed objects referenced with the path in install.jar
84: * @param osConstraints target operation system of this custom action
85: * @param type type of this custom data
86: */
87: public CustomData(String listenerName, List<String> contents,
88: List<OsConstraint> osConstraints, int type) {
89: this.listenerName = listenerName;
90: this.contents = contents;
91: this.osConstraints = osConstraints;
92: this.type = type;
93: }
94:
95: }
|