/* * Copyright Bing Xia (bxia@bxia.net) */ package org.clothocad.connection.configurableconnection; import java.net.URL; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import org.clothocad.hibernate.HibernateConnection; import org.clothocore.api.data.ObjBase; import org.clothocore.api.data.ObjBase.ObjBaseDatum; import org.clothocore.api.data.ObjType; import org.clothocore.api.data.ObjLink; import org.clothocore.api.plugin.ClothoConnection; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; /** * * @author Bing Xia <bxia@bxia.net> */ public class ConfigurableConnection implements ClothoConnection { public ConfigurableConnection() { _mappings = new ArrayList<URL>(); try { _conn = new HibernateConnection(); FileObject configFile = FileUtil.getConfigFile( "data/private/org.clothocad.connection.configurableconnection/" ).getFileObject( "hibernate.cfg.xml" ); _configFile = configFile.getURL(); List<FileObject> defaultMappings = HibernateConnection.getDefaultMappings(); for ( FileObject map : defaultMappings ) { _mappings.add( map.getURL() ); } } catch ( Exception ex ) { Logger.getLogger( ConfigurableConnection.class.getName() ).log( Level.SEVERE, null, ex ); } } @Override public boolean connect() { return _conn.connect( _configFile, _mappings ); } @Override public boolean isAClothoDatabase() { return true; } @Override public void init() { } @Override public boolean disconnect() { return _conn.disconnect(); } @Override public boolean isConnected() { return _conn.isConnected(); } @Override public boolean save( ObjBase obj ) { return _conn.save( obj ); } @Override public int save( Collection<ObjBase> objs ) { return _conn.save( objs ); } @Override public boolean delete( ObjBase obj ) { return _conn.delete( obj ); } @Override public int delete( Collection<ObjBase> objs ) { return _conn.delete( objs ); } @Override public Date getTimeModified( ObjBase obj ) { return _conn.getTimeModified( obj ); } @Override public ObjBase get( ObjType type, String uuid ) { return _conn.get( type, uuid ); } @Override public Collection<ObjBase> get( String hibQuery ) { return _conn.get( hibQuery ); } @Override public String getObjectTranslation( ObjType type ) { return _conn.getObjectTranslation( type ); } @Override public String getFieldTranslation( ObjType type, Enum field ) { return _conn.getFieldTranslation( type, field ); } @Override public ArrayList<ObjLink> getAllLinks( ObjType type ) { return _conn.getAllLinks( type ); } @Override public String[][] getTableAsArray( ObjType type ) { return _conn.getTableAsArray( type ); } @Override public ClothoQuery createQuery( ObjType type ) { return _conn.createQuery( type ); } private HibernateConnection _conn; private URL _configFile; private List<URL> _mappings; @Override public ObjBaseDatum getDatum(ObjType type, String uuid) { return _conn.getDatum( type, uuid ); } }