Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: e614e368208c5aed88f1158c16d76287014fbfda (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
/*****************************************************************************
 * Copyright (c) 2013 CEA LIST.
 *
 * 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:
 *  Saadia Dhouib (CEA LIST) saadia.dhouib@cea.fr - Initial API and implementation
 *****************************************************************************/
package org.eclipse.papyrus.robotml.modelexplorer.query;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
import org.eclipse.papyrus.robotml.modelexplorer.util.ProfileUtil;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Classifier;
import org.eclipse.uml2.uml.Port;
import org.eclipse.uml2.uml.Property;

/** get all ports from a classifier */
public class GetOtherPropertiesQuery implements IJavaModelQuery<Classifier, Collection<Property>> {

	@Override
	public Collection<Property> evaluate(final Classifier context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
		ArrayList<Property> result = new ArrayList<Property>();

		if (ProfileUtil.getAppliedProfile(context.getNearestPackage(), "RobotML") != null) {
			Iterator<Property> iter = context.getAllAttributes().iterator();
			while (iter.hasNext()) {
				Property currentElement = iter.next();
				if (!(currentElement instanceof Port) && !(currentElement.getType() instanceof Class)) {
					result.add(currentElement);
				}
			}
		}
		return result;
	}


}

Back to the top