/** * Return dependancy computing between this resource, and an other resource, asserting that this * resource is contained in this resource's dependant resources * * @param resource * @param dependancyScheme * @return */ @Override public boolean optimisticallyDependsOf(FlexoResource resource, Date requestDate) { if (resource instanceof FlexoProcessResource) { FlexoProcessResource processRes = (FlexoProcessResource) resource; if (processRes.isLoaded()) { FlexoProcess concernedProcess = processRes.getResourceData(); if (getGenerator() != null) { boolean iCanBeOptimistic = true; for (ComponentInstance ci : getGenerator().getComponentDefinition().getComponentInstances()) { if (ci instanceof OperationComponentInstance) { OperationNode operationNode = ((OperationComponentInstance) ci).getOperationNode(); if (operationNode.getProcess() == concernedProcess) { if (!operationNode.getLastUpdate().before(requestDate)) { iCanBeOptimistic = false; } } } } if (iCanBeOptimistic) { return false; } } } } return super.optimisticallyDependsOf(resource, requestDate); }