package liquibase.structure.core;
import liquibase.structure.AbstractDatabaseObject;
import liquibase.structure.DatabaseObject;
import liquibase.util.StreamUtil;
import liquibase.util.StringUtils;
import java.util.Date;
public abstract class StoredDatabaseLogic<T extends StoredDatabaseLogic> extends AbstractDatabaseObject {
@Override
public DatabaseObject[] getContainingObjects() {
return new DatabaseObject[]{
getSchema()
};
}
@Override
public String getName() {
return getAttribute("name", String.class);
}
@Override
public T setName(String name) {
setAttribute("name", name);
return (T) this;
}
@Override
public Schema getSchema() {
return getAttribute("schema", Schema.class);
}
public T setSchema(Schema schema) {
setAttribute("schema", schema);
return (T) this;
}
public Boolean isValid() {
return getAttribute("valid", Boolean.class);
}
public T setValid(Boolean valid) {
setAttribute("valid", valid);
return (T) this;
}
public String getBody() {
return getAttribute("body", String.class);
}
public T setBody(String body) {
setAttribute("body", body);
return (T) this;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
StoredDatabaseLogic that = (StoredDatabaseLogic) obj;
if (this.getSchema() != null && that.getSchema() != null) {
return StringUtils.trimToEmpty(this.getSchema().getName()).equalsIgnoreCase(StringUtils.trimToEmpty(that.getSchema().getName()));
}
return getName().equalsIgnoreCase(that.getName());
}
@Override
public int hashCode() {
return StringUtils.trimToEmpty(this.getName()).toLowerCase().hashCode();
}
}