當前位置: 首頁>>代碼示例>>Java>>正文


Java EObject.eGet方法代碼示例

本文整理匯總了Java中org.eclipse.emf.ecore.EObject.eGet方法的典型用法代碼示例。如果您正苦於以下問題:Java EObject.eGet方法的具體用法?Java EObject.eGet怎麽用?Java EObject.eGet使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.eclipse.emf.ecore.EObject的用法示例。


在下文中一共展示了EObject.eGet方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: mergeAttributes

import org.eclipse.emf.ecore.EObject; //導入方法依賴的package包/類
private void mergeAttributes(final EObject extension, final EObject extendsEObject) {
    final List<EAttribute> commonAttributes = new ArrayList<>();
    commonAttributes.addAll(extension.eClass().getEAllAttributes());
    commonAttributes.retainAll(extendsEObject.eClass().getEAllAttributes());

    final List<EAttribute> nonDerivedAttributes = commonAttributes.stream()
            .filter(a -> !a.isDerived())
            .collect(Collectors.toList());
    for (final EAttribute attribute : nonDerivedAttributes) {
        if (extension.eIsSet(attribute)) {
            final Object attributeValue = extension.eGet(attribute);
            if (attribute.isMany()) {
                final List<Object> values = (List<Object>) extendsEObject.eGet(attribute);
                final List<Object> mergeAttributeValues = (List<Object>) attributeValue;
                for (final Object mergeAttributeValue : mergeAttributeValues) {
                    if (!values.contains(mergeAttributeValue)) {
                        values.add(mergeAttributeValue);
                    }
                }
            } else {
                extendsEObject.eSet(attribute, attributeValue);
            }
        }
    }
}
 
開發者ID:vrapio,項目名稱:rest-modeling-framework,代碼行數:26,代碼來源:RamlModelBuilder.java

示例2: objPath

import org.eclipse.emf.ecore.EObject; //導入方法依賴的package包/類
private static void objPath(StringBuffer b, EObject obj) {
	if (obj.eContainer() != null) {
		objPath(b, obj.eContainer());
		b.append(".");
		b.append(obj.eContainingFeature().getName());
		if (obj.eContainingFeature().isMany()) {
			b.append("[");
			b.append(((List<?>) obj.eContainer().eGet(obj.eContainingFeature())).indexOf(obj));
			b.append("]");
		}
		b.append("->");
	}
	b.append(obj.eClass().getName());
	EStructuralFeature nameF = obj.eClass().getEStructuralFeature("name");
	Object name = nameF != null ? obj.eGet(nameF) : null;
	if (name != null) {
		b.append("'");
		b.append(name);
		b.append("'");
	}
}
 
開發者ID:eclipse,項目名稱:n4js,代碼行數:22,代碼來源:OrderedEmfFormatter.java

示例3: getName

import org.eclipse.emf.ecore.EObject; //導入方法依賴的package包/類
/**
 * @param eobj
 *            will be non-null and not a proxy
 * @return may return null
 */
private String getName(EObject eobj) {
	if (eobj != null) {
		// use reflection (or duck typing) to obtain the name
		EList<EAttribute> eAllAttributes = eobj.eClass().getEAllAttributes();
		for (EAttribute attr : eAllAttributes) {
			if ("name".equals(attr.getName())) {
				final Object value = eobj.eGet(attr, false);
				if (value instanceof String) {
					return (String) value;
				}
			}
		}
	}
	return null;
}
 
開發者ID:eclipse,項目名稱:n4js,代碼行數:21,代碼來源:ASTGraphProvider.java

示例4: visit

import org.eclipse.emf.ecore.EObject; //導入方法依賴的package包/類
@Override
public void visit(ContainerValue containerval, String param) {
    Container container = (Container) containerval.getType();
    EClass containerClass = this.m_typeToEcore.getContainerClass(container);

    EObject containerObject = containerClass.getEPackage()
        .getEFactoryInstance()
        .create(containerClass);
    setElement(containerval, containerObject);
    this.m_eObjects.add(containerObject);

    EStructuralFeature eFeature = containerClass.getEStructuralFeature("value");
    @SuppressWarnings("unchecked") EList<Object> objectList =
        (EList<Object>) containerObject.eGet(eFeature);
    for (Value val : containerval.getValue()) {
        Object eSubValue = getElement(val);
        objectList.add(eSubValue);
    }
}
 
開發者ID:meteoorkip,項目名稱:JavaGraph,代碼行數:20,代碼來源:InstanceToEcore.java

示例5: exposeTypesReferencedBy

import org.eclipse.emf.ecore.EObject; //導入方法依賴的package包/類
private static void exposeTypesReferencedBy(EObject root) {
	final TreeIterator<EObject> i = root.eAllContents();
	while (i.hasNext()) {
		final EObject object = i.next();
		for (EReference currRef : object.eClass().getEAllReferences()) {
			if (!currRef.isContainment() && !currRef.isContainer()) {
				final Object currTarget = object.eGet(currRef);
				if (currTarget instanceof Collection<?>) {
					for (Object currObj : (Collection<?>) currTarget) {
						exposeType(currObj);
					}
				} else {
					exposeType(currTarget);
				}
			}
		}
	}
}
 
開發者ID:eclipse,項目名稱:n4js,代碼行數:19,代碼來源:N4JSPostProcessor.java

示例6: writeEnum

import org.eclipse.emf.ecore.EObject; //導入方法依賴的package包/類
private void writeEnum(EObject object, EStructuralFeature feature) throws SerializerException, IOException {
	Object val = object.eGet(feature);
	if (feature.getEType().getName().equals("Tristate")) {
		IfcParserWriterUtils.writePrimitive(val, outputStream);
	} else {
		if (val == null) {
			print(DOLLAR);
		} else {
			if (((Enum<?>) val).toString().equals(NULL)) {
				print(DOLLAR);
			} else {
				print(DOT);
				print(val.toString());
				print(DOT);
			}
		}
	}
}
 
開發者ID:shenan4321,項目名稱:BIMplatform,代碼行數:19,代碼來源:IfcStepSerializer.java

示例7: performValidation

import org.eclipse.emf.ecore.EObject; //導入方法依賴的package包/類
protected void performValidation ( final EObject target, final EStructuralFeature feature, final ValidationContext ctx )
{
    final Object service = target.eGet ( feature );
    if ( service == null )
    {
        return;
    }

    if ( ! ( service instanceof HttpServiceModule ) )
    {
        throw new IllegalStateException ( String.format ( "Validator can only handle %s", HttpServiceModule.class.getName () ) );
    }

    if ( !HttpServices.isValid ( target, (HttpServiceModule)service ) )
    {
        ctx.add ( feature, "Selected HTTP Service is not present in the target application setup. The selected service must be either a module in the same application or in the selected configuration of the application." );
    }
}
 
開發者ID:eclipse,項目名稱:neoscada,代碼行數:19,代碼來源:HttpServiceValidator.java

示例8: getEObject

import org.eclipse.emf.ecore.EObject; //導入方法依賴的package包/類
@Override
protected EObject getEObject(final List<String> uriFragmentPath) {
    if (uriFragmentPath.size() != 2) {
        throw new AssertionError("Invalid uri fragment path:" + uriFragmentPath.stream().collect(Collectors.joining("/")));
    }
    if (uriFragmentPath.size() == 2) {
        final EObject rootObject = getEObjectForURIFragmentRootSegment("");
        final String featureName = uriFragmentPath.get(0);
        final EReference feature = (EReference) rootObject.eClass().getEStructuralFeature(featureName);
        final EClass eReferenceType = feature.getEReferenceType();

        if (IDENTIFIABLE_ELEMENT.isSuperTypeOf(eReferenceType)) {
            @SuppressWarnings("unchecked") final EList<EObject> children = (EList<EObject>) rootObject.eGet(feature);
            final String name = uriFragmentPath.get(1);
            return children.stream()
                    .filter(eObject -> name.equals(eObject.eGet(IDENTIFIABLE_ELEMENT__NAME)))
                    .findFirst()
                    .orElse(null);
        }
    }
    return null;
}
 
開發者ID:vrapio,項目名稱:rest-modeling-framework,代碼行數:23,代碼來源:RamlResource.java

示例9: refToStr

import org.eclipse.emf.ecore.EObject; //導入方法依賴的package包/類
private static void refToStr(EObject obj, EReference ref, String indent, Appendable buf) throws Exception {
	Object o = obj.eGet(ref);
	if (o instanceof EObject) {
		EObject eo = (EObject) o;

		if (eo instanceof ENamedElement)
			buf.append("'").append(((ENamedElement) eo).getName()).append("' ");
		buf.append("ref: ");
		getURI(obj, eo, buf);
		return;
	}
	if (o instanceof Collection<?>) {
		String innerIndent = indent + INDENT;
		buf.append("[");
		int counter = 0;
		Collection<?> coll = (Collection<?>) o;
		for (Iterator<?> i = coll.iterator(); i.hasNext();) {
			Object item = i.next();
			if (counter == 0)
				buf.append('\n');
			buf.append(innerIndent);
			printInt(counter++, coll.size(), buf);
			buf.append(": ");
			getURI(obj, (EObject) item, buf);
			if (i.hasNext())
				buf.append(",\n");
			else
				buf.append('\n').append(indent);
		}
		buf.append("]");
		return;
	}
	buf.append("?????");
}
 
開發者ID:eclipse,項目名稱:n4js,代碼行數:35,代碼來源:OrderedEmfFormatter.java

示例10: linkedPathname

import org.eclipse.emf.ecore.EObject; //導入方法依賴的package包/類
/**
 * Similar to {@link #linkedName(IStringExpectation, ICrossEReferenceAndEObject)} but concatenating the fully
 * qualified name again instead of using the qualified name provider, as the latter may not create a valid name for
 * non-globally available elements.
 * <p>
 * The qualified name created by retrieving all "name" properties of the target and its containers, using '/' as
 * separator.
 */
@Xpect
@ParameterParser(syntax = "('at' arg1=OFFSET)?")
public void linkedPathname(@StringExpectation IStringExpectation expectation,
		ICrossEReferenceAndEObject arg1) {
	EObject targetObject = (EObject) arg1.getEObject().eGet(arg1.getCrossEReference());
	if (targetObject == null) {
		Assert.fail("Reference is null");
		return; // to avoid warnings in the following
	}
	if (targetObject.eIsProxy())
		Assert.fail("Reference is a Proxy: " + ((InternalEObject) targetObject).eProxyURI());
	Resource targetResource = targetObject.eResource();
	if (targetResource instanceof TypeResource)
		targetResource = arg1.getEObject().eResource();
	if (!(targetResource instanceof XtextResource))
		Assert.fail("Referenced EObject is not in an XtextResource.");

	Deque<String> segments = new ArrayDeque<>();
	do {
		EStructuralFeature nameFeature = targetObject.eClass().getEStructuralFeature("name");
		if (nameFeature != null) {
			Object obj = targetObject.eGet(nameFeature);
			if (obj instanceof String) {
				segments.push((String) obj);
			}
		} else {
			if (targetObject instanceof NamedElement) {
				segments.push(((NamedElement) targetObject).getName());
			}
		}
		targetObject = targetObject.eContainer();
	} while (targetObject != null);
	String pathname = Joiner.on('/').join(segments);
	expectation.assertEquals(pathname);
}
 
開發者ID:eclipse,項目名稱:n4js,代碼行數:44,代碼來源:LinkingXpectMethod.java

示例11: haveEqualReference

import org.eclipse.emf.ecore.EObject; //導入方法依賴的package包/類
@SuppressWarnings("unchecked")
@Override
protected boolean haveEqualReference(EObject eObject1, EObject eObject2, EReference reference) {
	Object value1 = eObject1.eGet(reference, false);
	Object value2 = eObject2.eGet(reference, false);

	return reference.isMany() ? equals((List<EObject>) value1, (List<EObject>) value2)
			: equals((EObject) value1, (EObject) value2);
}
 
開發者ID:eclipse,項目名稱:n4js,代碼行數:10,代碼來源:EcoreUtilN4.java

示例12: getConnectedEdgesForEObject

import org.eclipse.emf.ecore.EObject; //導入方法依賴的package包/類
/**
 * Add outgoing references
 */
private void getConnectedEdgesForEObject(Node node, final List<Node> allNodes, final List<Edge> result,
		final EObject eobj) {

	for (EReference currRef : eobj.eClass().getEAllReferences()) {
		if (!currRef.isDerived() && !currRef.isContainer()) {
			if (currRef.isMany()) {
				final Object targets = eobj.eGet(currRef, false);
				if (targets instanceof Collection<?>) {
					getConnectedEdgesForEObjectManyCase(node, allNodes, result, currRef, targets);
				}
			} else {
				final Object target = eobj.eGet(currRef, false);
				if (target instanceof EObject) {
					getConnectedEdgesForEObjectSingleCase(node, allNodes, result, currRef, target);
				}
			}
		}
	}

	// add reference to containing Resource if immediate container is not in graph
	// (required when showing lower-level objects while hiding their ancestors)
	Node nodeForElement = GraphUtils.getNodeForElement(eobj.eContainer(), allNodes);

	if (eobj.eResource() != null && eobj.eContainer() != null && nodeForElement == null) {
		final Node nodeForResource = GraphUtils.getNodeForElement(eobj.eResource(), allNodes);
		if (nodeForResource != null) {
			Edge edge = new Edge(
					"<... containment omitted ...>",
					false, // not a cross-link
					nodeForResource,
					Collections.singletonList(node),
					Collections.emptyList());

			result.add(edge);
		}
	}
}
 
開發者ID:eclipse,項目名稱:n4js,代碼行數:41,代碼來源:ASTGraphProvider.java

示例13: writeEmbedded

import org.eclipse.emf.ecore.EObject; //導入方法依賴的package包/類
private void writeEmbedded(EObject eObject) throws SerializerException, IOException {
	EClass class1 = eObject.eClass();
	print(getPackageMetaData().getUpperCase(class1));
	print(OPEN_PAREN);
	EStructuralFeature structuralFeature = class1.getEStructuralFeature(WRAPPED_VALUE);
	if (structuralFeature != null) {
		Object realVal = eObject.eGet(structuralFeature);
		if (structuralFeature.getEType() == ECORE_PACKAGE_INSTANCE.getEDouble()) {
			writeDoubleValue((Double)realVal, eObject, structuralFeature);
		} else {
			IfcParserWriterUtils.writePrimitive(realVal, outputStream);
		}
	}
	print(CLOSE_PAREN);
}
 
開發者ID:shenan4321,項目名稱:BIMplatform,代碼行數:16,代碼來源:IfcStepSerializer.java

示例14: getEMap

import org.eclipse.emf.ecore.EObject; //導入方法依賴的package包/類
/**
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
@SuppressWarnings ( "unchecked" )
public EMap<String, String> getEMap ()
{
    EObject container = eContainer ();
    return container == null ? null : (EMap<String, String>)container.eGet ( eContainmentFeature () );
}
 
開發者ID:eclipse,項目名稱:neoscada,代碼行數:12,代碼來源:StringToStringMapImpl.java

示例15: isValueTransient

import org.eclipse.emf.ecore.EObject; //導入方法依賴的package包/類
@Override
public ValueTransient isValueTransient(EObject semanticObject, EStructuralFeature feature) {

	if (feature == OCCIPackage.Literals.ATTRIBUTE__MUTABLE) {
		if (semanticObject.eContainer() instanceof Type || semanticObject.eContainer() instanceof RecordType) {
			if ((boolean)semanticObject.eGet(feature)) {
				return ValueTransient.NO;
			}
		}
	}
	if (feature == OCCIPackage.Literals.RESOURCE__RLINKS) {
		return ValueTransient.YES;
	}
	return super.isValueTransient(semanticObject, feature);
}
 
開發者ID:occiware,項目名稱:OCCI-Studio,代碼行數:16,代碼來源:OCCICustomLegacyTransientValueService.java


注:本文中的org.eclipse.emf.ecore.EObject.eGet方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。