package org.openflexo.foundation.rm;
import java.util.Date;
import java.util.logging.Level;
import org.openflexo.model.annotations.Getter;
import org.openflexo.model.annotations.ModelEntity;
import org.openflexo.model.annotations.ReturnedValue;
import org.openflexo.model.annotations.Setter;
import org.openflexo.model.factory.AccessibleProxyObject;
@ModelEntity
public interface PAMELAStorageResourceData extends StorageResourceData, AccessibleProxyObject {
public static final String FLEXO_RESOURCE = "flexoResource";
public static final String PROJECT = "project";
@Override
@Getter(value = FLEXO_RESOURCE, ignoreType = true)
public FlexoStorageResource getFlexoResource();
@Setter(FLEXO_RESOURCE)
public void setFlexoStorageResource(FlexoStorageResource resource) throws DuplicateResourceException;
@Override
public void setFlexoResource(FlexoResource resource) throws DuplicateResourceException;
@Override
@Getter(value = PROJECT, ignoreType = true)
@ReturnedValue(FLEXO_RESOURCE + ".project")
public FlexoProject getProject();
public static abstract class PAMELAStorageResourceDataImpl implements PAMELAStorageResourceData {
private static final java.util.logging.Logger logger = org.openflexo.logging.FlexoLogger
.getLogger(PAMELAStorageResourceDataImpl.class.getPackage().getName());
private Date lastMemoryUpdate;
@Override
public FlexoProject getProject() {
return getFlexoResource().getProject();
}
@Override
public void setFlexoResource(FlexoResource resource) throws DuplicateResourceException {
setFlexoStorageResource((FlexoStorageResource) resource);
}
@Override
public Date lastMemoryUpdate() {
return lastMemoryUpdate;
}
@Override
public void setModified(boolean modified) {
boolean old = isModified();
performSuperSetModified(modified);
lastMemoryUpdate = new Date();
if (modified && !old && !isDeserializing()) {
if (logger.isLoggable(Level.INFO)) {
logger.info(">>>>>>>> PAMELA resource " + getFlexoResource() + " has been modified");
}
if (getFlexoResource() != null) {
getFlexoResource().notifyResourceStatusChanged();
}
}
}
}
}