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

com.googlecode.jsonschema2pojo.rules.RuleFactoryImpl Maven / Gradle / Ivy

There is a newer version: 0.3.7
Show newest version
/**
 * Copyright © 2010-2011 Nokia
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.googlecode.jsonschema2pojo.rules;

import java.util.HashMap;
import java.util.Map;

import com.sun.codemodel.JClass;
import com.sun.codemodel.JClassContainer;
import com.sun.codemodel.JDefinedClass;
import com.sun.codemodel.JDocComment;
import com.sun.codemodel.JDocCommentable;
import com.sun.codemodel.JFieldVar;
import com.sun.codemodel.JPackage;
import com.sun.codemodel.JType;

public class RuleFactoryImpl implements RuleFactory {

    private final Map behaviourProperties;

    /**
     * Create a new rule factory with the given behaviour properties
     * 
     * @param behaviourProperties
     *            A map defining the behavioural properties of this context.
     */
    public RuleFactoryImpl(Map behaviourProperties) {
        if (behaviourProperties == null) {
            this.behaviourProperties = new HashMap();
        } else {
            this.behaviourProperties = behaviourProperties;
        }
    }

    @Override
    public SchemaRule getArrayRule() {
        return new ArrayRule(this);
    }

    @Override
    public SchemaRule getDescriptionRule() {
        return new DescriptionRule();
    }

    @Override
    public SchemaRule getEnumRule() {
        return new EnumRule();
    }

    @Override
    public SchemaRule getFormatRule() {
        return new FormatRule();
    }

    @Override
    public SchemaRule getObjectRule() {
        return new ObjectRule(this);
    }

    @Override
    public SchemaRule getOptionalRule() {
        return new OptionalRule();
    }

    @Override
    public SchemaRule getPropertiesRule() {
        return new PropertiesRule(this);
    }

    @Override
    public SchemaRule getPropertyRule() {
        return new PropertyRule(this);
    }

    @Override
    public SchemaRule getRequiredRule() {
        return new RequiredRule();
    }

    @Override
    public SchemaRule getTypeRule() {
        return new TypeRule(this);
    }

    @Override
    public SchemaRule getAdditionalPropertiesRule() {
        return new AdditionalPropertiesRule(this);
    }

    @Override
    public SchemaRule getTitleRule() {
        return new TitleRule();
    }

    @Override
    public SchemaRule getSchemaRule() {
        return new JsonSchemaRule(this);
    }

    @Override
    public SchemaRule getDefaultRule() {
        return new DefaultRule();
    }

    @Override
    public String getBehaviourProperty(String key) {
        return behaviourProperties.get(key);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy