Skip to main content
summaryrefslogtreecommitdiffstats
blob: 568ea60482358dd05c8da71f8b3e8fb3d64049ea (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
/*******************************************************************************
 * Copyright (c) 2009, 2017 Tasktop Technologies 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:
 *     Tasktop Technologies - initial API and implementation
 *******************************************************************************/
package org.eclipse.equinox.internal.p2.discovery.model;

import java.util.ArrayList;
import java.util.List;
import org.eclipse.equinox.internal.p2.discovery.AbstractCatalogSource;

/**
 * @author David Green
 */
public class CatalogCategory extends AbstractCatalogItem {

	private AbstractCatalogSource source;

	private final List<CatalogItem> items = new ArrayList<>();

	protected String id;

	protected String name;

	protected String description;

	protected String relevance;

	protected Icon icon;

	protected Overview overview;

	protected java.util.List<Group> group = new ArrayList<>();

	public List<CatalogItem> getItems() {
		return items;
	}

	public AbstractCatalogSource getSource() {
		return source;
	}

	public void setSource(AbstractCatalogSource source) {
		this.source = source;
	}

	/**
	 * an id that uniquely identifies the category
	 */
	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	/**
	 * the name of the category, as it is displayed in the ui.
	 */
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	/**
	 * A description of the category
	 */
	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * A relevance, which is a number from 0 to 100. Categories with higher relevance are displayed with preference in
	 * the UI.
	 */
	public String getRelevance() {
		return relevance;
	}

	public void setRelevance(String relevance) {
		this.relevance = relevance;
	}

	public Icon getIcon() {
		return icon;
	}

	public void setIcon(Icon icon) {
		this.icon = icon;
	}

	public Overview getOverview() {
		return overview;
	}

	public void setOverview(Overview overview) {
		this.overview = overview;
	}

	public java.util.List<Group> getGroup() {
		return group;
	}

	public void setGroup(java.util.List<Group> group) {
		this.group = group;
	}

	public void validate() throws ValidationException {
		if (id == null || id.length() == 0) {
			throw new ValidationException(Messages.CatalogCategory_must_specify_CatalogCategory_id);
		}
		if (name == null || name.length() == 0) {
			throw new ValidationException(Messages.CatalogCategory_must_specify_CatalogCategory_name);
		}
		if (description == null || description.length() == 0) {
			throw new ValidationException("Must specify connectorCategory/@description"); //$NON-NLS-1$
		}
		if (icon != null) {
			icon.validate();
		}
		if (relevance != null) {
			try {
				int r = Integer.parseInt(relevance, 10);
				if (r < 0 || r > 100) {
					throw new NumberFormatException();
				}
			} catch (NumberFormatException e) {
				throw new ValidationException(Messages.CatalogCategory_CatalogCategory_relevance_invalid);
			}
		}
		if (overview != null) {
			overview.validate();
		}
		for (Group groupItem : group) {
			groupItem.validate();
		}
	}

}

Back to the top