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

io.relayr.java.model.models.schema.ObjectSchema Maven / Gradle / Ivy

package io.relayr.java.model.models.schema;

import java.util.List;

import io.relayr.java.model.models.transport.DeviceReading;

public class ObjectSchema extends ValueSchema {

    public ObjectSchema(ValueSchema schema) {
        super(schema);

        required = schema.required;
        properties = schema.properties;
        maxProperties = schema.maxProperties;
        minProperties = schema.minProperties;
        additionalProperties = schema.additionalProperties;
        patternProperties = schema.patternProperties;
        dependencies = schema.dependencies;
    }

    /** This object should be parsed depending on {@link DeviceReading#meaning} */
    public Object getProperties() {
        return properties;
    }

    /** If defined this integer MUST be greater than, or equal to, 0. */
    public int getMaxProperties() {
        return maxProperties;
    }

    /** If defined this integer MUST be greater than, or equal to, 0. */
    public int getMinProperties() {
        return minProperties;
    }

    /** @return required properties names. */
    public List getRequired() {
        return required;
    }

    /** @return true if contains additional properties. */
    public boolean hasAdditionalProperties() {
        return additionalProperties != null;
    }

    /** @return additional properties if there is any, null otherwise. */
    public Object getAdditionalProperties() {
        return additionalProperties;
    }

    /**
     * @return pattern properties.
     * Each property name of this object SHOULD be a valid regular expression,
     * according to the ECMA 262 regular expression dialect.
     */
    public Object getPatternProperties() {
        return patternProperties;
    }

    public Object getDependencies() {
        return dependencies;
    }

    @Override public boolean validate(Object value) {
        return validateNull(value);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy