public static <T extends VCObject> Iterable<T> getObjectsByNameAndType( final String name, VcmlModel vcmlModel, final java.lang.Class<T> type) { if (vcmlModel == null || type == null) { return Lists.newArrayList(); } else { Iterable<T> typeFilter = Iterables.filter(vcmlModel.getObjects(), type); if (name == null || name.isEmpty()) { return typeFilter; } else { return Iterables.filter( typeFilter, new Predicate<VCObject>() { public boolean apply(VCObject object) { return name.equals(object.getName()) && type.isAssignableFrom(object.getClass()); } }); } } }
public void run( Constraint object, Resource resource, IProgressMonitor monitor, Map<String, VCObject> seenObjects, List<Option> globalOptions) throws JCoException { // determine name of containing dependencyNet // TODO implement finding containing dependency net with ECoreUtils DependencyNet dependencyNet = null; VcmlModel model = (VcmlModel) object.eContainer(); for (Object o : EcoreUtil.getObjectsByType(model.getObjects(), VcmlPackage.Literals.DEPENDENCY_NET)) { DependencyNet depNet = (DependencyNet) o; if (depNet.getConstraints().contains(object)) { dependencyNet = depNet; break; } } beginTransaction(); JCoFunction function = getJCoFunction("CAMA_CNET_CONSTRAINT_MAINTAIN", monitor); JCoParameterList ipl = function.getImportParameterList(); handleOptions(object.getOptions(), globalOptions, ipl, "CHANGE_NO", null); ipl.setValue("CONSTRAINT", object.getName()); if (dependencyNet != null) { ipl.setValue("CONSTRAINT_NET", dependencyNet.getName()); } ipl.setValue("DELETE_FLAG", "X"); try { execute(function, monitor, "DELETE " + object.getName()); endTransaction(); } catch (AbapException e) { handleAbapException(e); } }