xy.reflect.ui.info.type.factory.EncapsulatedObjectFactory Maven / Gradle / Ivy
package xy.reflect.ui.info.type.factory;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import xy.reflect.ui.ReflectionUI;
import xy.reflect.ui.info.AbstractInfo;
import xy.reflect.ui.info.InfoCategory;
import xy.reflect.ui.info.ResourcePath;
import xy.reflect.ui.info.ValueReturnMode;
import xy.reflect.ui.info.field.IFieldInfo;
import xy.reflect.ui.info.filter.IInfoFilter;
import xy.reflect.ui.info.menu.MenuModel;
import xy.reflect.ui.info.method.IMethodInfo;
import xy.reflect.ui.info.method.InvocationData;
import xy.reflect.ui.info.method.MethodInfoProxy;
import xy.reflect.ui.info.type.ITypeInfo;
import xy.reflect.ui.info.type.source.ITypeInfoSource;
import xy.reflect.ui.info.type.source.PrecomputedTypeInfoSource;
import xy.reflect.ui.util.Accessor;
import xy.reflect.ui.util.ArrayAccessor;
import xy.reflect.ui.util.ReflectionUIError;
import xy.reflect.ui.util.ReflectionUIUtils;
public class EncapsulatedObjectFactory {
protected ReflectionUI reflectionUI;
protected String typeName;
protected String typeCaption = "";
protected Map typeSpecificProperties = new HashMap();
protected boolean typeModificationStackAccessible = true;
protected String typeOnlineHelp;
protected String fieldName = "";
protected ITypeInfo fieldType;
protected String fieldCaption = "";
protected boolean fieldGetOnly = false;
protected boolean fieldNullValueDistinct = false;
protected ValueReturnMode fieldValueReturnMode = ValueReturnMode.INDETERMINATE;
protected Map fieldSpecificProperties = new HashMap();
protected String fieldNullValueLabel;
protected String fieldOnlineHelp;
protected InfoCategory fieldCategory;
protected boolean fieldFormControlMandatory = false;
protected boolean fieldFormControlEmbedded = false;
protected IInfoFilter fieldFormControlFilter = IInfoFilter.DEFAULT;
protected ITypeInfoProxyFactory fieldTypeSpecificities;
public EncapsulatedObjectFactory(ReflectionUI reflectionUI, String typeName, ITypeInfo fieldType) {
this.reflectionUI = reflectionUI;
this.typeName = typeName;
this.fieldType = fieldType;
}
public EncapsulatedObjectFactory(ReflectionUI reflectionUI, ITypeInfo fieldType, String typeCaption,
String fieldCaption) {
this(reflectionUI, "Encapsulation [typeCaption=" + typeCaption + ", fieldType=" + fieldType.getName()
+ ", fieldCaption=" + fieldCaption + "]", fieldType);
this.fieldCaption = fieldCaption;
this.typeCaption = typeCaption;
}
public Object getInstance(Accessor