Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 03496171eab9a9953103628949920780eae70740 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
/*******************************************************************************
 * Copyright (c) 2000, 2007 IBM Corporation and others. All rights reserved.
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
 * and is available at http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors: IBM Corporation - initial API and implementation
 ******************************************************************************/
package org.eclipse.equinox.p2.metadata.generator;

/**
 */
public class FeatureEntry implements IPlatformEntry {
	private String id;
	private String version;
	private String url;
	private String os;
	private String ws;
	private String arch;
	private String nl;
	private String match;
	private boolean isPlugin;
	private boolean isFragment = false;
	private boolean isRequires = false;
	private boolean unpack = true;
	private boolean optional = false;

	/**
	 * Temporary field to add provisioning filters to features
	 */
	private String filter;

	public static FeatureEntry createRequires(String id, String version, String match, String filter, boolean isPlugin) {
		FeatureEntry result = new FeatureEntry(id, version, isPlugin);
		result.match = match;
		result.isRequires = true;
		if (filter != null)
			result.setFilter(filter);
		return result;
	}

	public FeatureEntry(String id, String version, boolean isPlugin) {
		this.id = id;
		this.version = version;
		this.isPlugin = isPlugin;
	}

	public String getURL() {
		return url;
	}

	public void setURL(String value) {
		url = value;
	}

	public String getId() {
		return id;
	}

	public String getVersion() {
		return version;
	}

	public boolean isPlugin() {
		return isPlugin;
	}

	public boolean isRequires() {
		return isRequires;
	}

	public boolean isFragment() {
		return isFragment;
	}

	public String toString() {
		StringBuffer result = new StringBuffer();

		result.append(isPlugin ? "Plugin: " : "Feature: "); //$NON-NLS-1$
		result.append(id != null ? id.toString() : ""); //$NON-NLS-1$
		result.append(version != null ? " " + version.toString() : ""); //$NON-NLS-1$ //$NON-NLS-2$
		return result.toString();
	}

	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		result = prime * result + ((version == null) ? 0 : version.hashCode());
		return result;
	}

	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		final FeatureEntry other = (FeatureEntry) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		if (version == null) {
			if (other.version != null)
				return false;
		} else if (!version.equals(other.version))
			return false;
		return true;
	}

	public void setEnvironment(String os, String ws, String arch, String nl) {
		this.os = os;
		this.ws = ws;
		this.arch = arch;
		this.nl = nl;
	}

	public void setFragment(boolean value) {
		isFragment = value;
	}

	public void setUnpack(boolean value) {
		unpack = value;
	}

	public boolean isUnpack() {
		return unpack;
	}

	public void setOptional(boolean value) {
		optional = value;
	}

	/**
	 * Temporary method to add provisioning filters to features
	 */
	public void setFilter(String filter) {
		this.filter = filter;

	}

	/**
	 * Temporary method to add provisioning filters to features
	 */
	public String getFilter() {
		return filter;
	}

	public String getMatch() {
		return match;
	}

	public boolean isOptional() {
		return optional;
	}

	public String getOS() {
		return os;
	}

	public String getWS() {
		return ws;
	}

	public String getArch() {
		return arch;
	}

	public String getNL() {
		return nl;
	}
}

Back to the top