private String getPath() { if (editorSoFar != null) { return editorSoFar.getPath(); } else { return "<Root Object>"; } }
@Override protected String mutableObjectExpression(EditorData data, String sourceObjectExpression) { if (baseProxyType.isAssignableFrom(data.getPropertyOwnerType())) { return String.format("((%s) request.edit((%s)))", data.getPropertyOwnerType() .getQualifiedSourceName(), sourceObjectExpression); } else { return sourceObjectExpression; } } }
/** * For debugging use only. */ @Override public String toString() { return getPath() + " = " + getEditorType(); } }
String pkg = parent.getEditorType().getPackage().getName(); escapedMaybeParameterizedBinaryName(parent.getEditorType()) + "_" + data.getDeclaredPath().replace("_", "_1").replace(".", "_") + "_Context"; ClassSourceFileComposerFactory f = new ClassSourceFileComposerFactory( pkg, simpleName); String editedSourceName = data.getEditedType().getParameterizedQualifiedSourceName(); f.setSuperclass(AbstractEditorContext.class.getCanonicalName() + "<" + editedSourceName + ">"); SourceWriter sw = f.createSourceWriter(context, pw); String parentSourceName = parent.getEditedType().getParameterizedQualifiedSourceName(); sw.println("private final %s parent;", parentSourceName); data.getSetterName() == null ? "false" : "true", data.getBeanOwnerGuard("parent")); sw.println("}"); data.getEditedType().getQualifiedSourceName()); data.getBeanOwnerGuard("parent"), data.getBeanOwnerExpression(), data.getGetterExpression()); sw.println("}"); if (data.getSetterName() == null) { sw.indentln("throw new UnsupportedOperationException();"); } else {
protected String getEditorDelegate(EditorData delegateData) { JClassType edited = delegateData.getEditedType(); JClassType editor = delegateData.getEditorType(); Map<EditorData, String> delegateFields = new IdentityHashMap<EditorData, String>(); NameFactory nameFactory = new NameFactory(); if (delegateData.isCompositeEditor()) { sw.println("@Override protected %s createComposedDelegate() {", Name.getSourceNameForClass(this.getEditorDelegateType())); sw.indentln("return new %s();", getEditorDelegate(delegateData.getComposedData())); sw.println("}"); if (d.isDelegateRequired()) { String fieldName = nameFactory.createName(d.getPropertyName() + "Delegate"); delegateFields.put(d, fieldName); if (delegateData.isCompositeEditor()) { sw.println( "createChain(%s.class);", delegateData.getComposedData().getEditedType().getQualifiedSourceName()); if (d.isDelegateRequired()) { sw.println("if (editor.%s != null) {", d.getSimpleExpression()); sw.indent(); sw.println("%s = new %s();", delegateFields.get(d), subDelegateType); sw.println("addSubDelegate(%s, appendPath(\"%s\"), editor.%s);", delegateFields.get(d), d.getDeclaredPath(), d.getSimpleExpression());
logger.log(Type.DEBUG, "Going over Field: " + editorData); //$NON-NLS-1$ String path = editorData.getPath(); if (path.length() == 0) { continue; JClassType propertyOwnerType = eraseType(editorData.getPropertyOwnerType()); path, editorData.getBeanOwnerExpression()); path, editorData.getBeanOwnerExpression()); sw.println("eventMap.addEvent(\"%s\", \"SelectedItemsChanged\", getObject()%s.getSelectedItemsChangedEvent());", //$NON-NLS-1$ path, editorData.getBeanOwnerExpression()); sw.println("eventMap.addEvent(\"%s\", \"SelectedItemChanged\", getObject()%s.getSelectedItemChangedEvent());", //$NON-NLS-1$ path, editorData.getBeanOwnerExpression());
String path = editorData.getPath(); if (path.length() == 0) { continue; if (!editorData.isDeclaredPathNested()) { logger.log(Type.DEBUG, "Found top-level Field: " + editorData); //$NON-NLS-1$ sw.indent(); sw.println("getEditor().%s.setValue(getObject()%s);", //$NON-NLS-1$ editorData.getExpression(), editorData.getGetterExpression()); sw.outdent(); sw.println("}"); //$NON-NLS-1$
/** * @param accumulator * @param data * @throws UnableToCompleteException */ private void descendIntoSubEditor(List<EditorData> accumulator, EditorData data) throws UnableToCompleteException { EditorModel superModel = parentModel; while (superModel != null) { if (superModel.editorType.isAssignableFrom(data.getEditorType()) || data.getEditorType().isAssignableFrom(superModel.editorType)) { poison(cycleErrorMessage(data.getEditorType(), superModel.getPath(), data.getPath())); return; } superModel = superModel.parentModel; } if (data.isDelegateRequired()) { EditorModel subModel = new EditorModel(this, data.getEditorType(), data, calculateEditedType(logger, data.getEditorType())); accumulator.addAll(accumulator.indexOf(data) + 1, Arrays.asList(subModel.getEditorData())); poisoned |= subModel.poisoned; } }
public EditorData build() throws UnableToCompleteException { if (data == null) { throw new IllegalStateException(); } try { data.editorExpression = (parent == null ? "" : (parent.getExpression() + ".")) + access.getExpresson(); data.path = (parent == null ? "" : (parent.getPath() + ".")) + access.getPath(); if (data.isCompositeEditor) { TreeLogger compositeLogger = logger.branch(TreeLogger.DEBUG, "Examining composite editor at " + data.path); JClassType subEditorType = EditorModel.calculateCompositeTypes(data.editorType)[1]; data.composedData = new Builder(compositeLogger).access( EditorAccess.root(subEditorType)).parent(data).build(); } return data; } finally { data = null; } }
private Set<String> getModelCleanupExpressions() { Set<String> result = new LinkedHashSet<>(); // top-level Model if (model.getProxyType().isAssignableTo(hasCleanupType)) { result.add("getObject()"); //$NON-NLS-1$ } // all Models edited through the top-level Model for (EditorData editorData : model.getEditorData()) { if (editorData.getPropertyOwnerType().isAssignableTo(hasCleanupType)) { result.add(String.format( "getObject()%s", //$NON-NLS-1$ editorData.getBeanOwnerExpression())); } } return result; }
EditorModel subModel = new EditorModel(this, subEditor.getEditorType(), subEditor, subEditor.getEditedType()); poisoned |= subModel.poisoned;
String pkg = parent.getEditorType().getPackage().getName(); escapedMaybeParameterizedBinaryName(parent.getEditorType()) + "_" + data.getDeclaredPath().replace("_", "_1").replace(".", "_") + "_Context"; ClassSourceFileComposerFactory f = new ClassSourceFileComposerFactory( pkg, simpleName); String editedSourceName = data.getEditedType().getParameterizedQualifiedSourceName(); f.setSuperclass(AbstractEditorContext.class.getCanonicalName() + "<" + editedSourceName + ">"); SourceWriter sw = f.createSourceWriter(context, pw); String parentSourceName = parent.getEditedType().getParameterizedQualifiedSourceName(); sw.println("private final %s parent;", parentSourceName); data.getSetterName() == null ? "false" : "true", data.getBeanOwnerGuard("parent")); sw.println("}"); data.getEditedType().getQualifiedSourceName()); data.getBeanOwnerGuard("parent"), data.getBeanOwnerExpression(), data.getGetterExpression()); sw.println("}"); if (data.getSetterName() == null) { sw.indentln("throw new UnsupportedOperationException();"); } else {
protected String getEditorDelegate(EditorData delegateData) { JClassType edited = delegateData.getEditedType(); JClassType editor = delegateData.getEditorType(); Map<EditorData, String> delegateFields = new IdentityHashMap<EditorData, String>(); NameFactory nameFactory = new NameFactory(); if (delegateData.isCompositeEditor()) { sw.println("@Override protected %s createComposedDelegate() {", Name.getSourceNameForClass(this.getEditorDelegateType())); sw.indentln("return new %s();", getEditorDelegate(delegateData.getComposedData())); sw.println("}"); if (d.isDelegateRequired()) { String fieldName = nameFactory.createName(d.getPropertyName() + "Delegate"); delegateFields.put(d, fieldName); if (delegateData.isCompositeEditor()) { sw.println( "createChain(%s.class);", delegateData.getComposedData().getEditedType().getQualifiedSourceName()); if (d.isDelegateRequired()) { sw.println("if (editor.%s != null) {", d.getSimpleExpression()); sw.indent(); sw.println("%s = new %s();", delegateFields.get(d), subDelegateType); sw.println("addSubDelegate(%s, appendPath(\"%s\"), editor.%s);", delegateFields.get(d), d.getDeclaredPath(), d.getSimpleExpression());
/** * Writes the map of the owner Models */ private void writeOwnerModels() { logger.log(Type.DEBUG, "Starting to write OwnerModels"); //$NON-NLS-1$ sw.println(); sw.println("@Override"); //$NON-NLS-1$ sw.println("protected java.util.Map<String, org.ovirt.engine.ui.uicommonweb.models.Model> getOwnerModels() {"); //$NON-NLS-1$ sw.indent(); sw.println("java.util.Map<String, org.ovirt.engine.ui.uicommonweb.models.Model> regs = new java.util.HashMap<String, org.ovirt.engine.ui.uicommonweb.models.Model>();"); //$NON-NLS-1$ logger.log(Type.DEBUG, "Going over Editor Fields"); //$NON-NLS-1$ for (EditorData editorData : model.getEditorData()) { logger.log(Type.DEBUG, "Going over Field: " + editorData); //$NON-NLS-1$ String path = editorData.getPath(); if (path.length() == 0) { continue; } JClassType propertyOwnerType = eraseType(editorData.getPropertyOwnerType()); if (propertyOwnerType == listModelType || propertyOwnerType == entityModelType) { logger.log(Type.DEBUG, "Found owner Model Field: " + editorData); //$NON-NLS-1$ sw.println("regs.put(\"%s\", getObject()%s);", path, editorData.getBeanOwnerExpression()); //$NON-NLS-1$ } } sw.println("return regs;"); //$NON-NLS-1$ sw.outdent(); sw.println("}"); //$NON-NLS-1$ }
/** * @param accumulator * @param data * @throws UnableToCompleteException */ private void descendIntoSubEditor(List<EditorData> accumulator, EditorData data) throws UnableToCompleteException { EditorModel superModel = parentModel; while (superModel != null) { if (superModel.editorType.isAssignableFrom(data.getEditorType()) || data.getEditorType().isAssignableFrom(superModel.editorType)) { poison(cycleErrorMessage(data.getEditorType(), superModel.getPath(), data.getPath())); return; } superModel = superModel.parentModel; } if (data.isDelegateRequired()) { EditorModel subModel = new EditorModel(this, data.getEditorType(), data, calculateEditedType(logger, data.getEditorType())); accumulator.addAll(accumulator.indexOf(data) + 1, Arrays.asList(subModel.getEditorData())); poisoned |= subModel.poisoned; } }
public EditorData build() throws UnableToCompleteException { if (data == null) { throw new IllegalStateException(); } try { data.editorExpression = (parent == null ? "" : (parent.getExpression() + ".")) + access.getExpresson(); data.path = (parent == null ? "" : (parent.getPath() + ".")) + access.getPath(); if (data.isCompositeEditor) { TreeLogger compositeLogger = logger.branch(TreeLogger.DEBUG, "Examining composite editor at " + data.path); JClassType subEditorType = EditorModel.calculateCompositeTypes(data.editorType)[1]; data.composedData = new Builder(compositeLogger).access( EditorAccess.root(subEditorType)).parent(data).build(); } return data; } finally { data = null; } }
EditorModel subModel = new EditorModel(this, subEditor.getEditorType(), subEditor, subEditor.getEditedType()); poisoned |= subModel.poisoned;
private String getPath() { if (editorSoFar != null) { return editorSoFar.getPath(); } else { return "<Root Object>"; } }
/** * For debugging use only. */ @Override public String toString() { return getPath() + " = " + getEditorType(); } }
@Override protected String mutableObjectExpression(EditorData data, String sourceObjectExpression) { if (baseProxyType.isAssignableFrom(data.getPropertyOwnerType())) { return String.format("((%s) request.edit((%s)))", data.getPropertyOwnerType() .getQualifiedSourceName(), sourceObjectExpression); } else { return sourceObjectExpression; } } }