implement new store listener api

This commit is contained in:
Sebastian Sdorra
2012-05-19 10:52:10 +02:00
parent 9c49a6a2d7
commit 0b9c1673d2
4 changed files with 14 additions and 8 deletions

View File

@@ -30,6 +30,7 @@
*/ */
package sonia.scm.store.orientdb; package sonia.scm.store.orientdb;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
@@ -43,6 +44,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import sonia.scm.orientdb.OrientDBUtil; import sonia.scm.orientdb.OrientDBUtil;
import sonia.scm.store.AbstractListenableStore;
import sonia.scm.store.Store; import sonia.scm.store.Store;
import sonia.scm.util.Util; import sonia.scm.util.Util;
@@ -60,7 +62,7 @@ import javax.xml.bind.JAXBException;
* *
* @param <T> * @param <T>
*/ */
public class OrientDBStore<T> implements Store<T> public class OrientDBStore<T> extends AbstractListenableStore<T>
{ {
/** Field description */ /** Field description */
@@ -158,6 +160,7 @@ public class OrientDBStore<T> implements Store<T>
* *
* @param t * @param t
*/ */
@Override
public void set(T t) public void set(T t)
{ {
ODatabaseDocumentTx connection = connectionProvider.get(); ODatabaseDocumentTx connection = connectionProvider.get();
@@ -178,6 +181,7 @@ public class OrientDBStore<T> implements Store<T>
context.createMarshaller().marshal(t, buffer); context.createMarshaller().marshal(t, buffer);
doc.field(FIELD_DATA, buffer.toString()); doc.field(FIELD_DATA, buffer.toString());
doc.save(); doc.save();
fireEvent(t);
} }
catch (JAXBException ex) catch (JAXBException ex)
{ {

View File

@@ -30,6 +30,7 @@
*/ */
package sonia.scm.store.orientdb; package sonia.scm.store.orientdb;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
@@ -46,8 +47,7 @@ import com.orientechnologies.orient.core.metadata.schema.OType;
import sonia.scm.SCMContextProvider; import sonia.scm.SCMContextProvider;
import sonia.scm.orientdb.OrientDBUtil; import sonia.scm.orientdb.OrientDBUtil;
import sonia.scm.store.Store; import sonia.scm.store.ListenableStoreFactory;
import sonia.scm.store.StoreFactory;
import sonia.scm.util.AssertUtil; import sonia.scm.util.AssertUtil;
//~--- JDK imports ------------------------------------------------------------ //~--- JDK imports ------------------------------------------------------------
@@ -62,7 +62,7 @@ import javax.xml.bind.JAXBException;
* @author Sebastian Sdorra * @author Sebastian Sdorra
*/ */
@Singleton @Singleton
public class OrientDBStoreFactory implements StoreFactory public class OrientDBStoreFactory implements ListenableStoreFactory
{ {
/** /**
@@ -138,7 +138,7 @@ public class OrientDBStoreFactory implements StoreFactory
* @return * @return
*/ */
@Override @Override
public <T> Store<T> getStore(Class<T> type, String name) public <T> OrientDBStore<T> getStore(Class<T> type, String name)
{ {
AssertUtil.assertIsNotNull(type); AssertUtil.assertIsNotNull(type);
AssertUtil.assertIsNotEmpty(name); AssertUtil.assertIsNotEmpty(name);

View File

@@ -52,7 +52,7 @@ import javax.xml.bind.Marshaller;
* *
* @param <T> * @param <T>
*/ */
public class JAXBStore<T> implements Store<T> public class JAXBStore<T> extends AbstractListenableStore<T>
{ {
/** the logger for JAXBStore */ /** the logger for JAXBStore */
@@ -149,6 +149,8 @@ public class JAXBStore<T> implements Store<T>
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.marshal(object, configFile); marshaller.marshal(object, configFile);
fireEvent(object);
} }
catch (JAXBException ex) catch (JAXBException ex)
{ {

View File

@@ -53,7 +53,7 @@ import java.io.IOException;
* @author Sebastian Sdorra * @author Sebastian Sdorra
*/ */
@Singleton @Singleton
public class JAXBStoreFactory implements StoreFactory public class JAXBStoreFactory implements ListenableStoreFactory
{ {
/** Field description */ /** Field description */
@@ -108,7 +108,7 @@ public class JAXBStoreFactory implements StoreFactory
* @return * @return
*/ */
@Override @Override
public <T> Store<T> getStore(Class<T> type, String name) public <T> JAXBStore<T> getStore(Class<T> type, String name)
{ {
File configFile = new File(configDirectory, name.concat(FILE_EXTENSION)); File configFile = new File(configDirectory, name.concat(FILE_EXTENSION));