All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.dynodao.processor.schema.parse.SchemaParsers Maven / Gradle / Ivy

package com.github.dynodao.processor.schema.parse;

import com.github.dynodao.processor.util.StreamUtil.Streamable;

import javax.inject.Inject;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * Contains all {@link SchemaParser} implementations in priority order.
 */
public class SchemaParsers implements Streamable {

    @Inject DocumentSchemaParser documentSchemaParser;
    @Inject ListTypeSchemaParser listTypeSchemaParser;
    @Inject MapTypeSchemaParser mapTypeSchemaParser;
    @Inject BooleanTypeSchemaParser booleanTypeSchemaParser;
    @Inject CharacterTypeSchemaParser characterTypeSchemaParser;
    @Inject StringTypeSchemaParser stringTypeSchemaParser;
    @Inject NumericTypeSchemaParser numericTypeSchemaParser;
    @Inject NullSchemaParser nullSchemaParser;

    private final List schemaParsers = new ArrayList<>();

    @Inject SchemaParsers() { }

    /**
     * Priority order:
     * 
    *
  • Element parse overrides. *
  • Type parse overrides. *
  • Built in parsing. *
  • Null parse. *
*/ @Inject void initSchemaParsers() { schemaParsers.add(documentSchemaParser); schemaParsers.add(listTypeSchemaParser); schemaParsers.add(mapTypeSchemaParser); schemaParsers.add(booleanTypeSchemaParser); schemaParsers.add(characterTypeSchemaParser); schemaParsers.add(stringTypeSchemaParser); schemaParsers.add(numericTypeSchemaParser); schemaParsers.add(nullSchemaParser); } @Override public Iterator iterator() { return schemaParsers.iterator(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy