blob: 9ce6454b0af9144fc1498e2fbc1f7c90e9e33b36 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 org.apache.ofbiz.webtools.artifactinfo;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import org.apache.ofbiz.base.location.FlexibleLocation;
import org.apache.ofbiz.base.util.GeneralException;
import org.apache.ofbiz.entity.GenericEntityException;
import org.apache.ofbiz.entity.model.ModelEntity;
import org.apache.ofbiz.entity.model.ModelRelation;
import org.apache.ofbiz.entityext.eca.EntityEcaRule;
/**
*
*/
public class EntityArtifactInfo extends ArtifactInfoBase {
protected ModelEntity modelEntity;
protected Set<EntityArtifactInfo> entitiesRelatedOne = new TreeSet<EntityArtifactInfo>();
protected Set<EntityArtifactInfo> entitiesRelatedMany = new TreeSet<EntityArtifactInfo>();
public EntityArtifactInfo(String entityName, ArtifactInfoFactory aif) throws GenericEntityException {
super(aif);
this.modelEntity = this.aif.getModelEntity(entityName);
}
public void populateAll() throws GeneralException {
List<ModelRelation> relationOneList = modelEntity.getRelationsOneList();
for (ModelRelation relationOne: relationOneList) {
this.entitiesRelatedOne.add(this.aif.getEntityArtifactInfo(relationOne.getRelEntityName()));
}
List<ModelRelation> relationManyList = modelEntity.getRelationsManyList();
for (ModelRelation relationMany: relationManyList) {
this.entitiesRelatedMany.add(this.aif.getEntityArtifactInfo(relationMany.getRelEntityName()));
}
}
public ModelEntity getModelEntity() {
return this.modelEntity;
}
@Override
public String getDisplayName() {
return this.getUniqueId();
}
@Override
public String getDisplayType() {
return "Entity";
}
@Override
public String getType() {
return ArtifactInfoFactory.EntityInfoTypeId;
}
@Override
public String getUniqueId() {
return this.modelEntity.getEntityName();
}
@Override
public URL getLocationURL() throws MalformedURLException {
return FlexibleLocation.resolveLocation(this.modelEntity.getLocation(), null);
}
@Override
public boolean equals(Object obj) {
if (obj instanceof EntityArtifactInfo) {
return this.modelEntity.getEntityName().equals(((EntityArtifactInfo) obj).modelEntity.getEntityName());
} else {
return false;
}
}
public Set<EntityArtifactInfo> getEntitiesRelatedOne() {
return this.entitiesRelatedOne;
}
public Set<EntityArtifactInfo> getEntitiesRelatedMany() {
return this.entitiesRelatedMany;
}
/** Get the Services that use this Entity */
public Set<ServiceArtifactInfo> getServicesUsingEntity() {
return this.aif.allServiceInfosReferringToEntityName.get(this.modelEntity.getEntityName());
}
/** Get the Services called by Entity ECA */
public Set<ServiceArtifactInfo> getServicesCalledByEntityEca() {
Set<ServiceArtifactInfo> serviceSet = new HashSet<ServiceArtifactInfo>();
// TODO: implement this
return serviceSet;
}
public Set<EntityEcaRule> getEntityEcaRules() {
Set<EntityEcaRule> eecaSet = new HashSet<EntityEcaRule>();
// TODO: implement this
return eecaSet;
}
public Set<FormWidgetArtifactInfo> getFormsUsingEntity() {
return this.aif.allFormInfosReferringToEntityName.get(this.modelEntity.getEntityName());
}
public Set<ScreenWidgetArtifactInfo> getScreensUsingEntity() {
return this.aif.allScreenInfosReferringToEntityName.get(this.modelEntity.getEntityName());
}
}