public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (!(obj instanceof IRequirementChange)) return false; final IRequirementChange other = (IRequirementChange) obj; if (applyOn == null) { if (other.applyOn() != null) return false; } else if (!applyOn.equals(other.applyOn())) return false; if (newValue == null) { if (other.newValue() != null) return false; } else if (!newValue.equals(other.newValue())) return false; return true; }
private boolean safeMatch(IRequirement[] originalRequirements, IRequirementChange change, int j) { try { return change.matches((IRequiredCapability) originalRequirements[j]); } catch (ClassCastException e) { return false; } }
private Collection<IRequirement> getRequirements(IInstallableUnit iu) { boolean isPatch = iu instanceof IInstallableUnitPatch; boolean isFragment = iu instanceof IInstallableUnitFragment; //Short-circuit for the case of an IInstallableUnit if ((!isFragment) && (!isPatch) && iu.getMetaRequirements().size() == 0) return iu.getRequirements(); ArrayList<IRequirement> aggregatedRequirements = new ArrayList<IRequirement>(iu.getRequirements().size() + iu.getMetaRequirements().size() + (isFragment ? ((IInstallableUnitFragment) iu).getHost().size() : 0) + (isPatch ? ((IInstallableUnitPatch) iu).getRequirementsChange().size() : 0)); aggregatedRequirements.addAll(iu.getRequirements()); if (iu instanceof IInstallableUnitFragment) { aggregatedRequirements.addAll(((IInstallableUnitFragment) iu).getHost()); } if (iu instanceof InstallableUnitPatch) { IInstallableUnitPatch patchIU = (IInstallableUnitPatch) iu; List<IRequirementChange> changes = patchIU.getRequirementsChange(); for (int i = 0; i < changes.size(); i++) aggregatedRequirements.add(changes.get(i).newValue()); } if (considerMetaRequirements) aggregatedRequirements.addAll(iu.getMetaRequirements()); return aggregatedRequirements; }
private Collection<IRequirement> getRequirements(IInstallableUnit iu) { boolean isPatch = iu instanceof IInstallableUnitPatch; boolean isFragment = iu instanceof IInstallableUnitFragment; //Short-circuit for the case of an IInstallableUnit if ((!isFragment) && (!isPatch) && iu.getMetaRequirements().size() == 0) return iu.getRequirements(); ArrayList<IRequirement> aggregatedRequirements = new ArrayList<>(iu.getRequirements().size() + iu.getMetaRequirements().size() + (isFragment ? ((IInstallableUnitFragment) iu).getHost().size() : 0) + (isPatch ? ((IInstallableUnitPatch) iu).getRequirementsChange().size() : 0)); aggregatedRequirements.addAll(iu.getRequirements()); if (iu instanceof IInstallableUnitFragment) { aggregatedRequirements.addAll(((IInstallableUnitFragment) iu).getHost()); } if (iu instanceof InstallableUnitPatch) { IInstallableUnitPatch patchIU = (IInstallableUnitPatch) iu; List<IRequirementChange> changes = patchIU.getRequirementsChange(); for (int i = 0; i < changes.size(); i++) aggregatedRequirements.add(changes.get(i).newValue()); } if (considerMetaRequirements) aggregatedRequirements.addAll(iu.getMetaRequirements()); return aggregatedRequirements; }
if (originalRequirements[j] != null && safeMatch(originalRequirements, change, j)) { found = true; if (change.newValue() != null) rrr.add(new IRequirement[] {originalRequirements[j], change.newValue()}); else if (!found && change.applyOn() == null && change.newValue() != null) //Case where a new requirement is added rrr.add(new IRequirement[] {null, change.newValue()});
protected void writeRequirementChange(IRequirementChange change) { start(REQUIREMENT_CHANGE); if (change.applyOn() != null) { start(REQUIREMENT_FROM); writeRequirement(change.applyOn()); end(REQUIREMENT_FROM); } if (change.newValue() != null) { start(REQUIREMENT_TO); writeRequirement(change.newValue()); end(REQUIREMENT_TO); } end(REQUIREMENT_CHANGE); }
protected void writeRequirementChange(IRequirementChange change) { start(REQUIREMENT_CHANGE); if (change.applyOn() != null) { start(REQUIREMENT_FROM); writeRequirement(change.applyOn()); end(REQUIREMENT_FROM); } if (change.newValue() != null) { start(REQUIREMENT_TO); writeRequirement(change.newValue()); end(REQUIREMENT_TO); } end(REQUIREMENT_CHANGE); }
protected void writeRequirementChange(IRequirementChange change) { start(REQUIREMENT_CHANGE); if (change.applyOn() != null) { start(REQUIREMENT_FROM); writeRequirement(change.applyOn()); end(REQUIREMENT_FROM); } if (change.newValue() != null) { start(REQUIREMENT_TO); writeRequirement(change.newValue()); end(REQUIREMENT_TO); } end(REQUIREMENT_CHANGE); }