Package com.firefly.core.support.xml

Examples of com.firefly.core.support.xml.ManagedValue


    List<Element> elements = dom.elements(ele);
    for (Element entry : elements) {
      Object key = null;
      Object value = null;
      if (entry.hasAttribute(XmlNodeConstants.KEY_ATTRIBUTE)) { // 如果有key属性
        key = new ManagedValue(entry
            .getAttribute(XmlNodeConstants.KEY_ATTRIBUTE));
      }

      if (entry.hasAttribute(XmlNodeConstants.VALUE_ATTRIBUTE)) { // 如果有value属性
        value = new ManagedValue(entry
            .getAttribute(XmlNodeConstants.VALUE_ATTRIBUTE));
      }

      // 获取key元素
      List<Element> keyEle = dom.elements(entry,
          XmlNodeConstants.MAP_KEY_ELEMENT);
      if (keyEle.size() > 1) {
        // 有且只能有一个key元素
        error("must not contain more than one key-element");
      } else if (keyEle.size() == 1) {
        if (key != null) {
          // key属性和key元素只能有一个
          error("only allowed to contain either 'key' attribute OR key-element");
        } else {
          // 获取key子元素
          List<Element> subKey = dom.elements(keyEle.get(0));
          if (subKey.size() != 1) {
            String keyText = dom.getTextValue(keyEle.get(0));
            if (keyText == null)
              error("must contain one key-sub-element");
            else
              key = new ManagedValue(keyText);
          } else {
            key = XmlNodeStateMachine.stateProcessor(subKey.get(0),
                dom);
          }
        }
      } else {
        if (key == null)
          error("not contain 'key' attribute OR key-element");
      }

      // 获取value元素
      List<Element> valueEle = dom.elements(entry,
          XmlNodeConstants.MAP_VALUE_ELEMENT);
      if (valueEle.size() > 1) {
        // 有且只能有一个value元素
        error("must not contain more than one value-element");
      } else if (valueEle.size() == 1) {
        if (value != null) {
          // value属性和value元素只能有一个
          error("only allowed to contain either 'value' attribute OR value-element");
        } else {
          // 获取value子元素
          List<Element> subValue = dom.elements(valueEle.get(0));
          if (subValue.size() != 1) {
            String valueText = dom.getTextValue(valueEle.get(0));
            if (valueText == null)
              error("must contain one value-sub-element");
            else
              value = new ManagedValue(valueText);
          } else {
            value = XmlNodeStateMachine.stateProcessor(subValue
                .get(0), dom);
          }
        }
View Full Code Here


          String value = property.getAttribute(VALUE_ATTRIBUTE);
          if (!StringUtils.hasText(value)) {
            error(name + " contains empty 'value' attribute");
          }
          xmlBeanDefinition.getProperties().put(name,
              new ManagedValue(value));
        } else if (hasRefAttribute) {
          // 依赖其他bean
          String ref = property.getAttribute(REF_ATTRIBUTE);
          if (!StringUtils.hasText(ref)) {
            error(name + " contains empty 'ref' attribute");
View Full Code Here

    } else
      return null;
  }

  private Object getValueArg(Object value, Method method) {
    ManagedValue managedValue = (ManagedValue) value;
    String typeName = null;
    if (method == null) {
      typeName = VerifyUtils.isEmpty(managedValue.getTypeName()) ? null
          : managedValue.getTypeName();
    } else {
      typeName = VerifyUtils.isEmpty(managedValue.getTypeName()) ? method
          .getParameterTypes()[0].getName() : managedValue
          .getTypeName();
    }

    log.debug("value type [{}]", typeName);
    return ConvertUtils.convert(managedValue.getValue(), typeName);
  }
View Full Code Here

    } else
      return null;
  }

  private Object getValueArg(Object value, Method method) {
    ManagedValue managedValue = (ManagedValue) value;
    String typeName = null;
    if (method == null) {
      typeName = VerifyUtils.isEmpty(managedValue.getTypeName()) ? null
          : managedValue.getTypeName();
    } else {
      typeName = VerifyUtils.isEmpty(managedValue.getTypeName()) ? method
          .getParameterTypes()[0].getName() : managedValue
          .getTypeName();
    }

    log.debug("value type [{}]", typeName);
    return ConvertUtils.convert(managedValue.getValue(), typeName);
  }
View Full Code Here

    List<Element> elements = dom.elements(ele);
    for (Element entry : elements) {
      XmlManagedNode key = null;
      XmlManagedNode value = null;
      if (entry.hasAttribute(XmlNodeConstants.KEY_ATTRIBUTE)) {
        key = new ManagedValue(entry.getAttribute(XmlNodeConstants.KEY_ATTRIBUTE));
      }

      if (entry.hasAttribute(XmlNodeConstants.VALUE_ATTRIBUTE)) {
        value = new ManagedValue(entry.getAttribute(XmlNodeConstants.VALUE_ATTRIBUTE));
      }

      List<Element> keyEle = dom.elements(entry,XmlNodeConstants.MAP_KEY_ELEMENT);
      if (keyEle.size() > 1) {
        error("must not contain more than one key-element");
      } else if (keyEle.size() == 1) {
        if (key != null) {
          error("only allowed to contain either 'key' attribute OR key-element");
        } else {
          List<Element> subKey = dom.elements(keyEle.get(0));
          if (subKey.size() != 1) {
            String keyText = dom.getTextValue(keyEle.get(0));
            if (keyText == null)
              error("must contain one key-sub-element");
            else
              key = new ManagedValue(keyText);
          } else {
            key = (XmlManagedNode)XmlNodeStateMachine.stateProcessor(subKey.get(0), dom);
          }
        }
      } else {
        if (key == null)
          error("not contain 'key' attribute OR key-element");
      }

      List<Element> valueEle = dom.elements(entry, XmlNodeConstants.MAP_VALUE_ELEMENT);
      if (valueEle.size() > 1) {
        error("must not contain more than one value-element");
      } else if (valueEle.size() == 1) {
        if (value != null) {
          error("only allowed to contain either 'value' attribute OR value-element");
        } else {
          List<Element> subValue = dom.elements(valueEle.get(0));
          if (subValue.size() != 1) {
            String valueText = dom.getTextValue(valueEle.get(0));
            if (valueText == null)
              error("must contain one value-sub-element");
            else
              value = new ManagedValue(valueText);
          } else {
            value = (XmlManagedNode)XmlNodeStateMachine.stateProcessor(subValue.get(0), dom);
          }
        }
      } else {
View Full Code Here

public class ValueNodeParser extends AbstractXmlNodeParser implements XmlNodeParser {

  @Override
  public Object parse(Element ele, Dom dom) {
    ManagedValue typedValue = new ManagedValue();
    String value = dom.getTextValue(ele);
    String typeName = null;
    if (ele.hasAttribute(TYPE_ATTRIBUTE)) {
      // 如果有type属性
      typeName = ele.getAttribute(TYPE_ATTRIBUTE);
      if (typeName == null) {
        error("<value> element contains empty target attribute");
        return null;
      }
    }

    typedValue.setValue(value);
    typedValue.setTypeName(typeName);
    return typedValue;
  }
View Full Code Here

      // literal value
      String value = property.getAttribute(VALUE_ATTRIBUTE);
      if (!StringUtils.hasText(value)) {
        error("This element contains empty 'value' attribute");
      }
      return new ManagedValue(value);
    } else if (hasRefAttribute) {
      // bean reference
      String ref = property.getAttribute(REF_ATTRIBUTE);
      if (!StringUtils.hasText(ref)) {
        error("This element contains empty 'ref' attribute");
View Full Code Here

  }

  @SuppressWarnings("unchecked")
  private Object getInjectArg(XmlManagedNode value, Class<?> parameterType) {
    if (value instanceof ManagedValue) {
      ManagedValue managedValue = (ManagedValue)value;
      String typeName = null;
      if (parameterType == null) {
        typeName = VerifyUtils.isEmpty(managedValue.getTypeName()) ? null
            : managedValue.getTypeName();
      } else {
        typeName = VerifyUtils.isEmpty(managedValue.getTypeName()) ? parameterType.getName() : managedValue.getTypeName();
      }
      log.debug("value type [{}]", typeName);
      return getValueArg(managedValue, typeName);
    } else if (value instanceof ManagedRef) {
      return getRefArg((ManagedRef)value);
View Full Code Here

TOP

Related Classes of com.firefly.core.support.xml.ManagedValue

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.