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

com.draagon.meta.loader.model.pojo.MetaModelPojo Maven / Gradle / Ivy

package com.draagon.meta.loader.model.pojo;

import com.draagon.meta.InvalidValueException;
import com.draagon.meta.ValueException;
import com.draagon.meta.ValueNotFoundException;
import com.draagon.meta.loader.model.MetaModel;
import com.draagon.meta.object.MetaObject;
import com.draagon.meta.object.MetaObjectAware;
import com.draagon.meta.object.pojo.PojoObject;

import java.util.List;
import java.util.Objects;

public class MetaModelPojo extends PojoObject implements MetaModel, MetaObjectAware {

    private String pkg;
    private String type;
    private String subType;
    private String name;
    private String superRef;
    private String value;
    private List children;

    public MetaModelPojo( MetaObject mo ) {
        super( mo );
    }

    @Override
    public String getPackage() {
        return pkg;
    }

    @Override
    public void setPackage(String pkg) {
        this.pkg = pkg;
    }

    @Override
    public String getType() {
        return type;
    }

    @Override
    public void setType(String type) {
        this.type = type;
    }

    @Override
    public String getSubType() {
        return subType;
    }

    @Override
    public void setSubType(String subType) {
        this.subType = subType;
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String getSuper() {
        return superRef;
    }

    @Override
    public void setSuper(String superRef) {
        this.superRef = superRef;
    }

    @Override
    public String getValue() {
        return value;
    }

    @Override
    public void setValue(String value) {
        this.value = value;
    }

    @Override
    public List getChildren() {
        return children;
    }

    @Override
    public void setChildren(List children) {
        this.children = children;
    }

    @Override
    public void validate() throws ValueException {
        super.validate();
        if ( getType() == null || !getType().equals(MetaModel.OBJECT_NAME )) {
            if (getName() == null && getType() == null) {
                throw new InvalidValueException("Both name and type cannot be null");
            }
            if (getName() == null && getSuper() == null) {
                throw new InvalidValueException("Both name and super cannot be null");
            }
        }
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        MetaModelPojo that = (MetaModelPojo) o;
        return Objects.equals(pkg, that.pkg) &&
                Objects.equals(type, that.type) &&
                Objects.equals(subType, that.subType) &&
                Objects.equals(name, that.name) &&
                Objects.equals(superRef, that.superRef) &&
                Objects.equals(children, that.children);
    }

    @Override
    public int hashCode() {
        return Objects.hash(pkg, type, subType, name, superRef, children);
    }

    @Override
    public String toString() {
        return "MetaModelPojo{" +
                "pkg='" + pkg + '\'' +
                ", type='" + type + '\'' +
                ", subType='" + subType + '\'' +
                ", name='" + name + '\'' +
                ", superRef='" + superRef + '\'' +
                '}';
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy