use of org.apache.cayenne.map.Embeddable in project cayenne by apache.
the class PackageUpdateController method updatePackage.
protected void updatePackage() {
boolean doAll = isAllEntities();
Map<String, String> oldNameEmbeddableToNewName = new HashMap<>();
// Create local copy to escape ConcurrentModificationException
Collection<Embeddable> embeddables = new ArrayList<>(dataMap.getEmbeddables());
for (Embeddable embeddable : embeddables) {
String oldName = embeddable.getClassName();
Pattern p = Pattern.compile("[.]");
String[] tokens = p.split(oldName);
String className = tokens[tokens.length - 1];
if (doAll || Util.isEmptyString(oldName) || oldName.indexOf('.') < 0) {
EmbeddableEvent e = new EmbeddableEvent(this, embeddable, embeddable.getClassName());
String newClassName = getNameWithDefaultPackage(className);
oldNameEmbeddableToNewName.put(oldName, newClassName);
embeddable.setClassName(newClassName);
mediator.fireEmbeddableEvent(e, mediator.getCurrentDataMap());
}
}
for (ObjEntity entity : dataMap.getObjEntities()) {
String oldName = getClassName(entity);
if (doAll || Util.isEmptyString(oldName) || oldName.indexOf('.') < 0) {
String className = extractClassName(Util.isEmptyString(oldName) ? entity.getName() : oldName);
setClassName(entity, getNameWithDefaultPackage(className));
}
for (ObjAttribute attribute : entity.getAttributes()) {
if (attribute instanceof EmbeddedAttribute) {
if (oldNameEmbeddableToNewName.size() > 0 && oldNameEmbeddableToNewName.containsKey(attribute.getType())) {
attribute.setType(oldNameEmbeddableToNewName.get(attribute.getType()));
AttributeEvent ev = new AttributeEvent(this, attribute, entity);
mediator.fireObjAttributeEvent(ev);
}
}
}
}
view.dispose();
}
use of org.apache.cayenne.map.Embeddable in project cayenne by apache.
the class ObjAttributeInfoDialog method getCurrentOverrideAttribute.
public Map<String, String> getCurrentOverrideAttribute() {
Map<String, String> currentEmbeddableOverrite = new HashMap<>();
Collection<EmbeddableAttribute> embList = embeddableModel.getEmbeddableList();
Embeddable emb = stringToEmbeddables.get(attributeSaved.getType());
for (EmbeddableAttribute e : embList) {
if ((emb.getAttribute(e.getName()).getDbAttributeName() == null && e.getDbAttributeName() != null) || (emb.getAttribute(e.getName()).getDbAttributeName() != null && !emb.getAttribute(e.getName()).getDbAttributeName().equals(e.getDbAttributeName()))) {
currentEmbeddableOverrite.put(e.getName(), e.getDbAttributeName());
}
}
return currentEmbeddableOverrite;
}
use of org.apache.cayenne.map.Embeddable in project cayenne by apache.
the class PasteUndoableEdit method undo.
@Override
public void undo() throws CannotUndoException {
RemoveAttributeAction rAttributeAction = actionManager.getAction(RemoveAttributeAction.class);
RemoveAction rAction = actionManager.getAction(RemoveAction.class);
RemoveRelationshipAction rRelationShipAction = actionManager.getAction(RemoveRelationshipAction.class);
RemoveCallbackMethodAction rCallbackMethodAction = actionManager.getAction(RemoveCallbackMethodAction.class);
RemoveProcedureParameterAction rProcedureParamAction = actionManager.getAction(RemoveProcedureParameterAction.class);
if (content instanceof DataMap) {
if (where instanceof DataChannelDescriptor) {
rAction.removeDataMap((DataMap) content);
} else if (where instanceof DataNodeDescriptor) {
rAction.removeDataMapFromDataNode((DataNodeDescriptor) where, (DataMap) content);
}
} else if (where instanceof DataMap) {
if (content instanceof DbEntity) {
rAction.removeDbEntity(map, (DbEntity) content);
} else if (content instanceof ObjEntity) {
rAction.removeObjEntity(map, (ObjEntity) content);
} else if (content instanceof Embeddable) {
rAction.removeEmbeddable(map, (Embeddable) content);
} else if (content instanceof QueryDescriptor) {
rAction.removeQuery(map, (QueryDescriptor) content);
} else if (content instanceof Procedure) {
rAction.removeProcedure(map, (Procedure) content);
}
} else if (where instanceof DbEntity) {
if (content instanceof DbEntity) {
rAction.removeDbEntity(map, (DbEntity) content);
} else if (content instanceof DbAttribute) {
rAttributeAction.removeDbAttributes(map, (DbEntity) where, new DbAttribute[] { (DbAttribute) content });
} else if (content instanceof DbRelationship) {
rRelationShipAction.removeDbRelationships((DbEntity) where, new DbRelationship[] { (DbRelationship) content });
}
} else if (where instanceof ObjEntity) {
if (content instanceof ObjEntity) {
rAction.removeObjEntity(map, (ObjEntity) content);
} else if (content instanceof ObjAttribute) {
rAttributeAction.removeObjAttributes((ObjEntity) where, new ObjAttribute[] { (ObjAttribute) content });
} else if (content instanceof ObjRelationship) {
rRelationShipAction.removeObjRelationships((ObjEntity) where, new ObjRelationship[] { (ObjRelationship) content });
} else if (content instanceof ObjCallbackMethod) {
ObjCallbackMethod[] methods = new ObjCallbackMethod[] { (ObjCallbackMethod) content };
for (ObjCallbackMethod callbackMethod : methods) {
rCallbackMethodAction.removeCallbackMethod(methods[0].getCallbackType(), callbackMethod.getName());
}
}
} else if (where instanceof Procedure) {
final Procedure procedure = (Procedure) where;
if (content instanceof ProcedureParameter) {
rProcedureParamAction.removeProcedureParameters(procedure, new ProcedureParameter[] { (ProcedureParameter) content });
}
} else if (where instanceof Embeddable) {
if (content instanceof Embeddable) {
rAction.removeEmbeddable(map, (Embeddable) content);
} else if (content instanceof EmbeddableAttribute) {
rAttributeAction.removeEmbeddableAttributes((Embeddable) where, new EmbeddableAttribute[] { (EmbeddableAttribute) content });
}
}
}
use of org.apache.cayenne.map.Embeddable in project cayenne by apache.
the class EmbeddableTab method currentEmbeddableChanged.
public void currentEmbeddableChanged(EmbeddableDisplayEvent e) {
Embeddable embeddable = e.getEmbeddable();
if (embeddable == null || !e.isEmbeddableChanged()) {
return;
}
initFromModel(embeddable);
}
use of org.apache.cayenne.map.Embeddable in project cayenne by apache.
the class EmbeddableTabbedView method currentEmbeddableChanged.
public void currentEmbeddableChanged(EmbeddableDisplayEvent e) {
Embeddable emb = e.getEmbeddable();
if (e.isMainTabFocus() && emb instanceof Embeddable) {
if (getSelectedComponent() != embeddablePanel) {
setSelectedComponent(embeddablePanel);
embeddablePanel.setVisible(true);
}
}
resetRemoveButtons();
setVisible(e.getEmbeddable() != null);
}
Aggregations