/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.jevis.commons.database; import java.io.File; import java.util.logging.Level; import java.util.logging.Logger; import org.jevis.api.JEVisClass; import org.jevis.api.JEVisConstants; import org.jevis.api.JEVisDataSource; import org.jevis.api.JEVisException; import org.jevis.api.JEVisType; /** * * @author broder */ public class ClassHandler { private final JEVisDataSource dataSource; public ClassHandler(JEVisDataSource dataSource) { this.dataSource = dataSource; } public void renameClass(String report, String periodicReport) { try { JEVisClass jeVisClass = dataSource.getJEVisClass(report); jeVisClass.setName(periodicReport); jeVisClass.commit(); } catch (JEVisException ex) { Logger.getLogger(ClassHandler.class.getName()).log(Level.SEVERE, null, ex); } } public void printClass(String report) { try { JEVisClass jeVisClass = dataSource.getJEVisClass(report); System.out.println(jeVisClass.getName()); for (JEVisType attribute : jeVisClass.getTypes()) { System.out.println(attribute.getName()); } jeVisClass.commit(); } catch (JEVisException ex) { Logger.getLogger(ClassHandler.class.getName()).log(Level.SEVERE, null, ex); } } public void createClass(String className) { try { dataSource.buildClass(className); } catch (JEVisException ex) { Logger.getLogger(ClassHandler.class.getName()).log(Level.SEVERE, null, ex); } } public void setInheritanceParent(String parentName, String childName) { try { JEVisClass jeVisParentClass = dataSource.getJEVisClass(parentName); JEVisClass jeVisChildClass = dataSource.getJEVisClass(childName); jeVisChildClass.buildRelationship(jeVisParentClass, JEVisConstants.ClassRelationship.INHERIT, JEVisConstants.Direction.FORWARD); jeVisChildClass.commit(); } catch (JEVisException ex) { Logger.getLogger(ClassHandler.class.getName()).log(Level.SEVERE, null, ex); } } public void removeType(String className, String typeName) { try { JEVisClass jeVisClass = dataSource.getJEVisClass(className); for (JEVisType type : jeVisClass.getTypes()) { if (type.getName().equals(typeName)) { type.delete(); } } jeVisClass.commit(); } catch (JEVisException ex) { Logger.getLogger(ClassHandler.class.getName()).log(Level.SEVERE, null, ex); } } public void addType(String className, String typeName, int primitivType) { try { JEVisClass jeVisClass = dataSource.getJEVisClass(className); jeVisClass.buildType(typeName).setPrimitiveType(primitivType); jeVisClass.commit(); } catch (JEVisException ex) { Logger.getLogger(ClassHandler.class.getName()).log(Level.SEVERE, null, ex); } } public void addType(String className, String typeName) { try { JEVisClass jeVisClass = dataSource.getJEVisClass(className); jeVisClass.buildType(typeName); jeVisClass.commit(); } catch (JEVisException ex) { Logger.getLogger(ClassHandler.class.getName()).log(Level.SEVERE, null, ex); } } public void setIcon(String className, String iconPath) { try { JEVisClass jeVisClass = dataSource.getJEVisClass(className); jeVisClass.setIcon(new File(iconPath)); jeVisClass.commit(); } catch (JEVisException ex) { Logger.getLogger(ClassHandler.class.getName()).log(Level.SEVERE, null, ex); } } public void setOkParent(String okParentName, String childName) { try { JEVisClass jeVisParentClass = dataSource.getJEVisClass(okParentName); JEVisClass jeVisChildClass = dataSource.getJEVisClass(childName); jeVisChildClass.buildRelationship(jeVisParentClass, JEVisConstants.ClassRelationship.OK_PARENT, JEVisConstants.Direction.FORWARD); jeVisChildClass.commit(); } catch (JEVisException ex) { Logger.getLogger(ClassHandler.class.getName()).log(Level.SEVERE, null, ex); } } public void renameType(String className, String oldName, String newName) { try { JEVisClass jeVisClass = dataSource.getJEVisClass(className); JEVisType type = jeVisClass.getType(oldName); type.setName(newName); type.commit(); jeVisClass.commit(); } catch (JEVisException ex) { Logger.getLogger(ClassHandler.class.getName()).log(Level.SEVERE, null, ex); } } }