| /* |
| * 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()); |
| } |
| } |