[DEV] continue integration properties
This commit is contained in:
parent
ce7b909cb0
commit
24d9099a85
File diff suppressed because it is too large
Load Diff
@ -21,79 +21,6 @@ public class IntrospectionObject {
|
||||
this.modelInterface = dataInterface;
|
||||
}
|
||||
|
||||
public Object getData() {
|
||||
return this.data;
|
||||
}
|
||||
|
||||
public IntrospectionModel getModelIntrospection() {
|
||||
return this.modelInterface;
|
||||
}
|
||||
|
||||
public void putProperty(final String propertyName, final Object propertyValue) throws ExmlException {
|
||||
final String beanName = this.modelInterface.getBeanName(propertyName);
|
||||
if (this.properties.containsKey(beanName)) {
|
||||
throw new ExmlBuilderException("Property have multiple values ==> impossible case; A Node must contain only 1 attibutes");
|
||||
}
|
||||
this.properties.put(beanName, propertyValue);
|
||||
}
|
||||
|
||||
public boolean isSubNodeOrPropertyExist(final String nodeName) {
|
||||
final String beanName = this.modelInterface.getBeanName(nodeName);
|
||||
if (beanName == null) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Detect a subNode, and ask the type of the node at the parent Class
|
||||
* @param nodeName Name of the node
|
||||
* @return Class of the node to create
|
||||
*/
|
||||
public Class<?> getTypeOfSubNode(final String nodeName) throws ExmlException {
|
||||
final String beanName = this.modelInterface.getBeanName(nodeName);
|
||||
if (beanName == null) {
|
||||
throw new ExmlNodeDoesNotExist("The node '" + nodeName + "' Does not exist...");
|
||||
}
|
||||
return this.modelInterface.getTypeOfSubNode(beanName);
|
||||
}
|
||||
public Class<?> getTypeOfSubNodeSubType(final String nodeName) throws ExmlException {
|
||||
final String beanName = this.modelInterface.getBeanName(nodeName);
|
||||
if (beanName == null) {
|
||||
throw new ExmlNodeDoesNotExist("The node '" + nodeName + "' Does not exist...");
|
||||
}
|
||||
return this.modelInterface.getTypeOfSubNodeList(beanName);
|
||||
}
|
||||
public String getTreeNameOfSubNode(final String nodeName) throws ExmlException {
|
||||
final String beanName = this.modelInterface.getBeanName(nodeName);
|
||||
if (beanName == null) {
|
||||
throw new ExmlNodeDoesNotExist("The node '" + nodeName + "' Does not exist...");
|
||||
}
|
||||
return this.modelInterface.getTreeNameOfSubNode(beanName);
|
||||
}
|
||||
|
||||
public Class<?> getTypeOfProperty(final String nodeName) throws ExmlException {
|
||||
final String beanName = this.modelInterface.getBeanName(nodeName);
|
||||
if (beanName == null) {
|
||||
throw new ExmlNodeDoesNotExist("The node '" + nodeName + "' Does not exist...");
|
||||
}
|
||||
return this.modelInterface.getTypeOfProperty(beanName);
|
||||
}
|
||||
public Class<?> getTypeOfSubProperty(final String nodeName) throws ExmlException {
|
||||
final String beanName = this.modelInterface.getBeanName(nodeName);
|
||||
if (beanName == null) {
|
||||
throw new ExmlNodeDoesNotExist("The node '" + nodeName + "' Does not exist...");
|
||||
}
|
||||
return this.modelInterface.getTypeOfSubProperty(beanName);
|
||||
}
|
||||
|
||||
public void setText(final String text) throws ExmlBuilderException {
|
||||
if (this.data != null) {
|
||||
throw new ExmlBuilderException("Can not set multiple text value in a single NODE ...");
|
||||
}
|
||||
this.data = this.modelInterface.getValueFromText(text);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void addObject(final String nodeName, final Object value) throws ExmlException {
|
||||
if (value == null) {
|
||||
@ -148,10 +75,87 @@ public class IntrospectionObject {
|
||||
// nothing to do ... ==> element already created
|
||||
return;
|
||||
}
|
||||
Log.info("Create the element for the Specific node ... type = " + this.modelInterface.getClassType().getCanonicalName() + (this.modelInterface.isArray()?"[array]":"") + (this.modelInterface.isList()?"[List]":""));
|
||||
Log.info(" Properties : " + this.properties.keySet());
|
||||
Log.info(" Nodes : " + this.nodes.keySet());
|
||||
Log.debug("Create the element for the Specific node ... type = " + this.modelInterface.getClassType().getCanonicalName() + (this.modelInterface.isArray() ? "[array]" : "")
|
||||
+ (this.modelInterface.isList() ? "[List]" : ""));
|
||||
Log.debug(" Properties : " + this.properties.keySet());
|
||||
Log.debug(" Nodes : " + this.nodes.keySet());
|
||||
this.data = this.modelInterface.createObject(this.properties, this.nodes);
|
||||
}
|
||||
|
||||
public Object getData() {
|
||||
return this.data;
|
||||
}
|
||||
|
||||
public IntrospectionModel getModelIntrospection() {
|
||||
return this.modelInterface;
|
||||
}
|
||||
|
||||
public String getTreeNameOfSubNode(final String nodeName) throws ExmlException {
|
||||
final String beanName = this.modelInterface.getBeanName(nodeName);
|
||||
if (beanName == null) {
|
||||
throw new ExmlNodeDoesNotExist("The node '" + nodeName + "' Does not exist...");
|
||||
}
|
||||
return this.modelInterface.getTreeNameOfSubNode(beanName);
|
||||
}
|
||||
|
||||
public Class<?> getTypeOfProperty(final String nodeName) throws ExmlException {
|
||||
final String beanName = this.modelInterface.getBeanName(nodeName);
|
||||
if (beanName == null) {
|
||||
throw new ExmlNodeDoesNotExist("The node '" + nodeName + "' Does not exist...");
|
||||
}
|
||||
return this.modelInterface.getTypeOfProperty(beanName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Detect a subNode, and ask the type of the node at the parent Class
|
||||
* @param nodeName Name of the node
|
||||
* @return Class of the node to create
|
||||
*/
|
||||
public Class<?> getTypeOfSubNode(final String nodeName) throws ExmlException {
|
||||
final String beanName = this.modelInterface.getBeanName(nodeName);
|
||||
if (beanName == null) {
|
||||
throw new ExmlNodeDoesNotExist("The node '" + nodeName + "' Does not exist...");
|
||||
}
|
||||
return this.modelInterface.getTypeOfSubNode(beanName);
|
||||
}
|
||||
|
||||
public Class<?> getTypeOfSubNodeSubType(final String nodeName) throws ExmlException {
|
||||
final String beanName = this.modelInterface.getBeanName(nodeName);
|
||||
if (beanName == null) {
|
||||
throw new ExmlNodeDoesNotExist("The node '" + nodeName + "' Does not exist...");
|
||||
}
|
||||
return this.modelInterface.getTypeOfSubNodeList(beanName);
|
||||
}
|
||||
|
||||
public Class<?> getTypeOfSubProperty(final String nodeName) throws ExmlException {
|
||||
final String beanName = this.modelInterface.getBeanName(nodeName);
|
||||
if (beanName == null) {
|
||||
throw new ExmlNodeDoesNotExist("The node '" + nodeName + "' Does not exist...");
|
||||
}
|
||||
return this.modelInterface.getTypeOfSubProperty(beanName);
|
||||
}
|
||||
|
||||
public boolean isSubNodeOrPropertyExist(final String nodeName) {
|
||||
final String beanName = this.modelInterface.getBeanName(nodeName);
|
||||
if (beanName == null) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void putProperty(final String propertyName, final Object propertyValue) throws ExmlException {
|
||||
final String beanName = this.modelInterface.getBeanName(propertyName);
|
||||
if (this.properties.containsKey(beanName)) {
|
||||
throw new ExmlBuilderException("Property have multiple values ==> impossible case; A Node must contain only 1 attibutes");
|
||||
}
|
||||
this.properties.put(beanName, propertyValue);
|
||||
}
|
||||
|
||||
public void setText(final String text) throws ExmlBuilderException {
|
||||
if (this.data != null) {
|
||||
throw new ExmlBuilderException("Can not set multiple text value in a single NODE ...");
|
||||
}
|
||||
this.data = this.modelInterface.getValueFromText(text);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -38,17 +38,6 @@ public final class IntrospectionProperty {
|
||||
// third field access
|
||||
IntrospectionPropertySetter setter = null;
|
||||
|
||||
public String getListName() {
|
||||
return this.listName;
|
||||
}
|
||||
public boolean isCanBeSetByConstructor() {
|
||||
return this.canBeSetByConstructor;
|
||||
}
|
||||
|
||||
public void setCanBeSetByConstructor(final boolean canBeSetByConstructor) {
|
||||
this.canBeSetByConstructor = canBeSetByConstructor;
|
||||
}
|
||||
|
||||
public IntrospectionProperty(final String beanName, final Class<?>[] type, final String[] names) {
|
||||
this.beanName = beanName;
|
||||
this.type = type[0];
|
||||
@ -56,13 +45,6 @@ public final class IntrospectionProperty {
|
||||
this.names = names;
|
||||
}
|
||||
|
||||
public void setSetter(final IntrospectionPropertySetter setter) {
|
||||
this.setter = setter;
|
||||
}
|
||||
public void setGetter(final IntrospectionPropertyGetter getter) {
|
||||
this.getter = getter;
|
||||
}
|
||||
|
||||
public boolean canGetValue() {
|
||||
return this.getter != null;
|
||||
}
|
||||
@ -71,80 +53,6 @@ public final class IntrospectionProperty {
|
||||
return this.canBeSetByConstructor || this.setter != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get list of all names of the property/node (minimal 1 name)
|
||||
* @return Array of names available
|
||||
*/
|
||||
public String[] getNames() {
|
||||
return this.names;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get basic type of the property
|
||||
* @return property type detected.
|
||||
*/
|
||||
public Class<?> getType() {
|
||||
return this.type;
|
||||
}
|
||||
/**
|
||||
* Get the type of the property (if list ==> need to be get on method otherwise it is an Object...)
|
||||
* @return Type of the list element.
|
||||
*/
|
||||
public Class<?> getSubType() {
|
||||
return this.subType;
|
||||
}
|
||||
/**
|
||||
* Get the value in the object.
|
||||
* @param object Object that is invoke to get the value.
|
||||
* @return The generate value of the object
|
||||
* @throws ExmlBuilderException in an error occured
|
||||
*/
|
||||
public Object getValue(final Object object) throws ExmlBuilderException {
|
||||
if (this.getter != null) {
|
||||
return this.getter.getValue(object);
|
||||
}
|
||||
throw new ExmlBuilderException("Property: " + this.names + " have no getter");
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the input name is compatible win an element in the list availlable (respect case sensitive if needed)
|
||||
* @param name Name to check
|
||||
* @return true if the element is compatible, false otherwise
|
||||
*/
|
||||
public boolean isCompatible(final String name) {
|
||||
Log.warning("Check compatible : '" + name + "' in " + Arrays.toString(this.names));
|
||||
if (this.caseSensitive) {
|
||||
for (final String elem : this.names) {
|
||||
if (elem.contentEquals(name)) {
|
||||
Log.warning(" - '" + elem + "' ==> true");
|
||||
return true;
|
||||
}
|
||||
Log.warning(" - '" + elem + "' == false");
|
||||
}
|
||||
} else {
|
||||
for (final String elem : this.names) {
|
||||
if (elem.equalsIgnoreCase(name)) {
|
||||
Log.warning(" - '" + elem + "' ==> true");
|
||||
return true;
|
||||
}
|
||||
Log.warning(" - '" + elem + "' == false");
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* set the specific string value in the specified object
|
||||
* @param object Object to add the value
|
||||
* @param value Value to set in the Object
|
||||
* @throws Exception An error occurred
|
||||
*/
|
||||
public void setExistingValue(final Object object, final Object value) throws ExmlBuilderException {
|
||||
if (this.setter != null) {
|
||||
this.setter.setValue(object, value);
|
||||
return;
|
||||
}
|
||||
throw new ExmlBuilderException("Property: " + this.names + " have no setter");
|
||||
}
|
||||
/**
|
||||
* Create a value adapted to the property type.
|
||||
* @apiNote generic type is transformed byte -> Byte, int -> Integer ...
|
||||
@ -175,38 +83,146 @@ public final class IntrospectionProperty {
|
||||
}
|
||||
}
|
||||
|
||||
public Boolean isCaseSensitive() {
|
||||
return this.caseSensitive;
|
||||
}
|
||||
public void setCaseSensitive(final Boolean caseSensitive) {
|
||||
this.caseSensitive = caseSensitive;
|
||||
}
|
||||
public Boolean isOptionnal() {
|
||||
return this.optionnal;
|
||||
}
|
||||
public void setOptionnal(final Boolean optionnal) {
|
||||
this.optionnal = optionnal;
|
||||
}
|
||||
public Boolean isAttribute() {
|
||||
return this.attribute;
|
||||
}
|
||||
public void setAttribute(final Boolean attribute) {
|
||||
this.attribute = attribute;
|
||||
}
|
||||
public String getBeanName() {
|
||||
return this.beanName;
|
||||
}
|
||||
public void setNames(final String[] names) {
|
||||
this.names = names;
|
||||
|
||||
public String getListName() {
|
||||
return this.listName;
|
||||
}
|
||||
public void setListName(final String listName) {
|
||||
this.listName = listName;
|
||||
|
||||
/**
|
||||
* Get list of all names of the property/node (minimal 1 name)
|
||||
* @return Array of names available
|
||||
*/
|
||||
public String[] getNames() {
|
||||
return this.names;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the type of the property (if list ==> need to be get on method otherwise it is an Object...)
|
||||
* @return Type of the list element.
|
||||
*/
|
||||
public Class<?> getSubType() {
|
||||
return this.subType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get basic type of the property
|
||||
* @return property type detected.
|
||||
*/
|
||||
public Class<?> getType() {
|
||||
return this.type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the value in the object.
|
||||
* @param object Object that is invoke to get the value.
|
||||
* @return The generate value of the object
|
||||
* @throws ExmlBuilderException in an error occured
|
||||
*/
|
||||
public Object getValue(final Object object) throws ExmlBuilderException {
|
||||
if (this.getter != null) {
|
||||
return this.getter.getValue(object);
|
||||
}
|
||||
throw new ExmlBuilderException("Property: " + this.names + " have no getter");
|
||||
}
|
||||
|
||||
public Boolean isAttribute() {
|
||||
return this.attribute;
|
||||
}
|
||||
|
||||
public boolean isCanBeSetByConstructor() {
|
||||
return this.canBeSetByConstructor;
|
||||
}
|
||||
|
||||
public Boolean isCaseSensitive() {
|
||||
return this.caseSensitive;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the input name is compatible win an element in the list availlable (respect case sensitive if needed)
|
||||
* @param name Name to check
|
||||
* @return true if the element is compatible, false otherwise
|
||||
*/
|
||||
public boolean isCompatible(final String name) {
|
||||
Log.verbose("Check compatible : '" + name + "' in " + Arrays.toString(this.names));
|
||||
if (this.caseSensitive) {
|
||||
for (final String elem : this.names) {
|
||||
if (elem.contentEquals(name)) {
|
||||
Log.verbose(" - '" + elem + "' ==> true");
|
||||
return true;
|
||||
}
|
||||
Log.verbose(" - '" + elem + "' == false");
|
||||
}
|
||||
} else {
|
||||
for (final String elem : this.names) {
|
||||
if (elem.equalsIgnoreCase(name)) {
|
||||
Log.verbose(" - '" + elem + "' ==> true");
|
||||
return true;
|
||||
}
|
||||
Log.verbose(" - '" + elem + "' == false");
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public Boolean isManaged() {
|
||||
return this.managed;
|
||||
}
|
||||
|
||||
public Boolean isOptionnal() {
|
||||
return this.optionnal;
|
||||
}
|
||||
|
||||
public void setAttribute(final Boolean attribute) {
|
||||
this.attribute = attribute;
|
||||
}
|
||||
|
||||
public void setCanBeSetByConstructor(final boolean canBeSetByConstructor) {
|
||||
this.canBeSetByConstructor = canBeSetByConstructor;
|
||||
}
|
||||
|
||||
public void setCaseSensitive(final Boolean caseSensitive) {
|
||||
this.caseSensitive = caseSensitive;
|
||||
}
|
||||
|
||||
/**
|
||||
* set the specific string value in the specified object
|
||||
* @param object Object to add the value
|
||||
* @param value Value to set in the Object
|
||||
* @throws Exception An error occurred
|
||||
*/
|
||||
public void setExistingValue(final Object object, final Object value) throws ExmlBuilderException {
|
||||
if (this.setter != null) {
|
||||
this.setter.setValue(object, value);
|
||||
return;
|
||||
}
|
||||
throw new ExmlBuilderException("Property: " + this.names + " have no setter");
|
||||
}
|
||||
|
||||
public void setGetter(final IntrospectionPropertyGetter getter) {
|
||||
this.getter = getter;
|
||||
}
|
||||
|
||||
public void setListName(final String listName) {
|
||||
this.listName = listName;
|
||||
}
|
||||
|
||||
public void setManaged(final Boolean managed) {
|
||||
this.managed = managed;
|
||||
}
|
||||
|
||||
public void setNames(final String[] names) {
|
||||
this.names = names;
|
||||
}
|
||||
|
||||
public void setOptionnal(final Boolean optionnal) {
|
||||
this.optionnal = optionnal;
|
||||
}
|
||||
|
||||
public void setSetter(final IntrospectionPropertySetter setter) {
|
||||
this.setter = setter;
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user