/** SpagoBI, the Open Source Business Intelligence suite Copyright (C) 2012 Engineering Ingegneria Informatica S.p.A. - SpagoBI Competency Center This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. **/ package it.eng.spagobi.studio.geo.editors.model.bo; import it.eng.spagobi.studio.geo.editors.model.geo.DatamartProvider; import it.eng.spagobi.studio.geo.editors.model.geo.GEODocument; import it.eng.spagobi.studio.geo.editors.model.geo.Hierarchies; import it.eng.spagobi.studio.geo.editors.model.geo.Hierarchy; import java.util.Vector; public class HierarchyBO { public static void setNewHierarchy(GEODocument geoDocument, String name, String type){ DatamartProvider dmProvider =geoDocument.getDatamartProvider(); if(dmProvider != null){ Hierarchies hierarchies = dmProvider.getHierarchies(); Vector<Hierarchy> vectHier = null; if(hierarchies == null){ hierarchies = new Hierarchies(); vectHier = new Vector<Hierarchy>(); hierarchies.setHierarchy(vectHier); dmProvider.setHierarchies(hierarchies); }else{ vectHier = hierarchies.getHierarchy(); if(vectHier == null){ vectHier = new Vector<Hierarchy>(); hierarchies.setHierarchy(vectHier); } } //add new hierarchy Hierarchy newHierarchy = new Hierarchy(); newHierarchy.setName(name); newHierarchy.setType(type); vectHier.add(newHierarchy); } } public static Hierarchy getHierarchyByName(GEODocument geoDocument, String name){ Hierarchy hierarchy = null; DatamartProvider dmProvider =geoDocument.getDatamartProvider(); if(dmProvider != null){ Hierarchies hierarchies = dmProvider.getHierarchies(); if(hierarchies != null && hierarchies.getHierarchy() != null){ for(int i =0; i< hierarchies.getHierarchy().size(); i++){ Hierarchy h = hierarchies.getHierarchy().elementAt(i); if(h.getName().equals(name)){ hierarchy = h; } } } } return hierarchy; } public static Hierarchies getAllHierarchies(GEODocument geoDocument){ DatamartProvider dmProvider =geoDocument.getDatamartProvider(); if(dmProvider != null){ Hierarchies hierarchies = dmProvider.getHierarchies(); return hierarchies; } return null; } public static void deleteHierarchy(GEODocument geoDocument, String name){ DatamartProvider dmProvider =geoDocument.getDatamartProvider(); if(dmProvider != null){ Hierarchies hierarchies = dmProvider.getHierarchies(); if(hierarchies != null && hierarchies.getHierarchy() != null){ Vector <Hierarchy> hierToRemove = new Vector<Hierarchy>(); for(int i =0; i< hierarchies.getHierarchy().size(); i++){ Hierarchy h = hierarchies.getHierarchy().elementAt(i); if(h.getName().equals(name)){ //hierarchies.getHierarchy().remove(h); hierToRemove.add(h); } } hierarchies.getHierarchy().removeAll(hierToRemove); } } } }