package io.cattle.platform.api.schema;
import io.cattle.platform.object.meta.ObjectMetaDataManager;
import io.cattle.platform.object.meta.Relationship;
import io.cattle.platform.util.type.Named;
import io.github.ibuildthecloud.gdapi.factory.impl.SubSchemaFactory;
import io.github.ibuildthecloud.gdapi.model.impl.SchemaImpl;
import java.util.Map;
import javax.inject.Inject;
public class ObjectBasedSubSchemaFactory extends SubSchemaFactory implements Named {
ObjectMetaDataManager metaDataManager;
@Override
protected void prune(SchemaImpl schema) {
super.prune(schema);
schema.getIncludeableLinks().clear();
Map<String, Relationship> rels = metaDataManager.getLinkRelationships(this, schema.getId());
if (rels == null || rels.size() == 0) {
return;
} else {
for (Relationship rel : rels.values()) {
schema.getIncludeableLinks().add(rel.getName());
}
}
}
public ObjectMetaDataManager getMetaDataManager() {
return metaDataManager;
}
@Inject
public void setMetaDataManager(ObjectMetaDataManager metaDataManager) {
this.metaDataManager = metaDataManager;
}
@Override
public String getName() {
return "schema:" + getId();
}
}