Package org.projectforge.xml.stream

Examples of org.projectforge.xml.stream.XmlObjectWriter


    return msg;
  }

  public String exportConfiguration()
  {
    final XmlObjectWriter writer = new XmlObjectWriter() {
      @Override
      protected boolean ignoreField(final Object obj, final Field field)
      {
        if (field.getDeclaringClass().isAssignableFrom(ConfigXml.class) == true
            && StringHelper.isIn(field.getName(), "expireTime", "timeOfLastRefresh") == true) {
          return true;
        }
        return super.ignoreField(obj, field);
      }

      /**
       * @see org.projectforge.xml.stream.XmlObjectWriter#writeField(java.lang.reflect.Field, java.lang.Object, java.lang.Object,
       *      org.projectforge.xml.stream.XmlField, org.dom4j.Element)
       */
      @Override
      protected void writeField(final Field field, final Object obj, final Object fieldValue, final XmlField annotation,
          final Element element)
      {
        if (field != null) {
          if (field.isAnnotationPresent(ConfigXmlSecretField.class) == true) {
            super.writeField(field, obj, SECRET_PROPERTY_STRING, annotation, element);
            return;
          }
        }
        super.writeField(field, obj, fieldValue, annotation, element);
      }
    };
    final String xml = writer.writeToXml(this, true);
    return XmlHelper.XML_HEADER + xml;
  }
View Full Code Here


  }

  public String exportAsXml(final GanttChart ganttChart, final boolean prettyFormat)
  {
    final Document document = DocumentHelper.createDocument();
    final XmlObjectWriter writer = getXmlGanttObjectWriter();
    final XmlRegistry xmlRegistry = new XmlRegistry();
    xmlRegistry.registerConverter(Date.class, new ISODateConverter());
    writer.setXmlRegistry(xmlRegistry);
    final MyRootElement root = new MyRootElement();
    root.ganttChart = ganttChart;
    root.setCreated().setTimeZone(PFUserContext.getTimeZone()).setVersion("1.0");
    final Element element = writer.write(document, root);
    // Now, remove all elements with no information from the DOM:
    final String xml;
    if (removeUnnecessaryElements(element) == true) {
      // Nothing to write (no further information in the GanttObject tree given).
      xml = "";
View Full Code Here

  /**
   * Ignores all field values in output which are equal to the values of the corresponding task.
   */
  private XmlObjectWriter getXmlGanttObjectWriter()
  {
    final XmlObjectWriter xmlGanttObjectWriter = new XmlObjectWriter() {
      @Override
      protected boolean ignoreField(final Object obj, final Field field)
      {
        if (super.ignoreField(obj, field) == true) {
          return true;
        }
        if (obj instanceof GanttTask) {
          final TaskTree taskTree = taskDao.getTaskTree();
          final String fieldName = field.getName();
          if ("id".equals(fieldName) == true) {
            // Id should always be equals and needed in output for the identification of the gantt object.
            return false;
          }
          if ("description".equals(fieldName) == true) {
            return true;
          }
          final GanttTask ganttObject = (GanttTask) obj;
          final TaskDO task = taskTree.getTaskById((Integer) ganttObject.getId());
          if (task != null) {
            if ("predecessor".equals(field.getName()) == true) {
              // Predecessor unmodified?
              return NumberHelper.isEqual((Integer) ganttObject.getPredecessorId(), task.getGanttPredecessorId());
            }
            String taskFieldname = fieldMapping.get(fieldName);
            if (taskFieldname == null) {
              taskFieldname = fieldName;
            }
            for (final Field taskField : taskFields) {
              if (taskFieldname.equals(taskField.getName()) == true) {
                final Object value = BeanHelper.getFieldValue(obj, field);
                final Object taskValue = BeanHelper.getFieldValue(task, taskField);
                if (value instanceof BigDecimal) {
                  // Needed, because 10.0 is not equal to 10.000 (if scale is different).
                  return NumberHelper.isEqual((BigDecimal) value, (BigDecimal) taskValue);
                }
                return ObjectUtils.equals(value, taskValue) == true;
              }
            }
          }
        }
        return false;
      }

      @Override
      protected void writeField(final Field field, final Object obj, final Object fieldValue, final XmlField annotation,
          final Element element)
      {
        if (GanttTask.class.isAssignableFrom(field.getDeclaringClass()) == true) {
          final String fieldName = field.getName();
          if ("id".equals(fieldName) == false) {
            final TaskTree taskTree = taskDao.getTaskTree();
            final GanttTask ganttObject = (GanttTask) obj;
            final TaskDO task = taskTree.getTaskById((Integer) ganttObject.getId());
            if (task != null) {
              String taskFieldname = fieldMapping.get(fieldName);
              if (taskFieldname == null) {
                taskFieldname = fieldName;
              }
              for (final Field taskField : taskFields) {
                if (taskFieldname.equals(taskField.getName()) == true) {
                  final Object value = BeanHelper.getFieldValue(obj, field);
                  final Object taskValue = BeanHelper.getFieldValue(task, taskField);
                  if (taskValue != null && value == null) {
                    // Reader should interpret this as null, so value from task will be overwritten by null.
                    element.addAttribute(field.getName(), XmlConstants.NULL_IDENTIFIER);
                    return;
                  }
                }
              }
            }
          }
        }
        super.writeField(field, obj, fieldValue, annotation, element);
      }
    };
    xmlGanttObjectWriter.setAliasMap(getXmlGanttObjectAliasMap());
    return xmlGanttObjectWriter;
  }
View Full Code Here

        final ImageDimension dimension = new ImageDimension(filename, icon.getIconWidth(), icon.getIconHeight());
        dimensions.add(dimension);
      }
    }
    final FileWriter writer = new FileWriter(DIMENSION_FILE);
    final XmlObjectWriter xmlWriter = new XmlObjectWriter();
    final AliasMap aliasMap = new AliasMap();
    aliasMap.put(ArrayList.class, "images");
    xmlWriter.setAliasMap(aliasMap);
    final String xml = xmlWriter.writeToXml(dimensions, true);
    writer.append(XmlHelper.XML_HEADER);
    writer.append(xml);
    IOUtils.closeQuietly(writer);
    log.info("Creation of dimension file done: " + DIMENSION_FILE);
  }
View Full Code Here

TOP

Related Classes of org.projectforge.xml.stream.XmlObjectWriter

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.