public static boolean validateElementMetaData(ElementType elementType) {
    ElementMetaData metaData = elementType.getMetaData();
    if (metaData == null) {
      logger.warn("No Metadata defined");
      return false;
    }

    if (validateCanInstantiate(metaData)) {
      return false;
    }

    final String typeName = metaData.getName();
    logger.debug("Processing " + typeName);

    ArrayList<String> missingProperties = new ArrayList<String>();
    validateCoreMetaData(metaData, missingProperties);
    validateStyleMetaData(metaData, missingProperties);
    validateAttributeMetaData(metaData, missingProperties);

    flushSystemErr();

    for (String property : missingProperties) {
      System.out.println(property);
    }

    return missingProperties.isEmpty();
  }
  private ElementMetaData createMetaData(final String fieldName) {

    final ContextAwareDataSchemaModel model =
        editorContext.getRenderContext().getReportDataSchemaModel();
    final DataSchema dataSchema = model.getDataSchema();
    final DataAttributes attributes = dataSchema.getAttributes(fieldName);
    final DataAttributeContext dataAttributeContext = new DefaultDataAttributeContext();
    if (attributes == null) {
      return null;
    }
    final ElementType type = AutoGeneratorUtility.createFieldType(attributes, dataAttributeContext);
    if (type == null) {
      return null;
    }
    return type.getMetaData();
  }
 public void registerReader(
     final ElementType elementType, final Class<? extends ElementReadHandler> readHandler) {
   ElementMetaData metaData = elementType.getMetaData();
   register(metaData.getNamespace(), metaData.getName(), readHandler);
 }
 public void registerGenericWriter(final ElementType elementType) {
   registerGenericWriter(elementType.getMetaData().getName());
 }
 public void registerGenericReader(final ElementType elementType) {
   ElementMetaData metaData = elementType.getMetaData();
   register(metaData.getNamespace(), metaData.getName(), GenericElementReadHandler.class);
 }
 public void register(
     final ElementType elementType,
     final Class<? extends BundleElementWriteHandler> writeHandler) {
   ElementMetaData metaData = elementType.getMetaData();
   register(metaData.getName(), writeHandler);
 }