[jboss-svn-commits] JBL Code SVN: r8704 - labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jan 5 06:32:47 EST 2007
Author: michael.neale at jboss.com
Date: 2007-01-05 06:32:44 -0500 (Fri, 05 Jan 2007)
New Revision: 8704
Added:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/AssetContentFormatHandler.java
Modified:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
Log:
JBRULES-601 refactoring
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/AssetContentFormatHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/AssetContentFormatHandler.java 2007-01-05 11:28:20 UTC (rev 8703)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/AssetContentFormatHandler.java 2007-01-05 11:32:44 UTC (rev 8704)
@@ -0,0 +1,77 @@
+package org.drools.brms.server;
+
+
+import org.drools.brms.client.common.AssetFormats;
+import org.drools.brms.client.modeldriven.brxml.RuleModel;
+import org.drools.brms.client.rpc.RuleAsset;
+import org.drools.brms.client.rpc.RuleContentText;
+import org.drools.brms.server.util.BRLPersistence;
+import org.drools.repository.AssetItem;
+
+import com.google.gwt.user.client.rpc.SerializableException;
+
+/**
+ * This takes care of the different asset types, based on the dublin core "format"
+ * attribute.
+ *
+ * This handles the loading/storing of these assets, as some of them require massaging
+ * before they are stored in the repository.
+ *
+ * It uses the content attribute of asset nodes (drools:content) based
+ * on the (drools:format) format key.
+ *
+ * @see AssetFormats
+ *
+ * @author Michael Neale
+ */
+public class AssetContentFormatHandler {
+
+ /**
+ * When loading asset content.
+ * @param asset The target.
+ * @param item The source.
+ * @throws SerializableException
+ */
+ public void retrieveAssetContent(RuleAsset asset,
+ AssetItem item) throws SerializableException {
+ if (item.getFormat().equals( AssetFormats.DSL_TEMPLATE_RULE)) {
+ //ok here is where we do DSLs...
+ throw new SerializableException("Can't load DSL rules just yet.");
+
+ } else if (item.getFormat().equals( AssetFormats.BUSINESS_RULE )) {
+ RuleModel model = BRLPersistence.getInstance().toModel( item.getContent() );
+ asset.content = model;
+ } else {
+ //default to text, goode olde texte, just like mum used to make.
+ RuleContentText text = new RuleContentText();
+ text.content = item.getContent();
+ asset.content = text;
+
+ }
+
+
+
+ }
+
+ /**
+ * For storing the asset content back into the repo node (any changes).
+ * @param asset
+ * @param repoAsset
+ * @throws SerializableException
+ */
+ public void storeAssetContent(RuleAsset asset, AssetItem repoAsset) throws SerializableException {
+ if (asset.content instanceof RuleContentText) {
+ repoAsset.updateContent( ((RuleContentText)asset.content).content );
+ } else if (asset.content instanceof RuleModel) {
+ RuleModel model = (RuleModel) asset.content;
+ repoAsset.updateContent( BRLPersistence.getInstance().toXML( model ) );
+ } else {
+ throw new SerializableException("Not able to handle that type of content just yet...");
+ }
+ }
+
+
+
+
+
+}
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/AssetContentFormatHandler.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java 2007-01-05 11:28:20 UTC (rev 8703)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java 2007-01-05 11:32:44 UTC (rev 8704)
@@ -30,7 +30,6 @@
import org.drools.repository.RulesRepository;
import org.drools.repository.RulesRepositoryException;
-import com.google.gwt.user.client.rpc.IsSerializable;
import com.google.gwt.user.client.rpc.SerializableException;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
@@ -209,27 +208,16 @@
RulesRepository repo = getRulesRepository();
AssetItem item = repo.loadAssetByUUID( uuid );
RuleAsset asset = new RuleAsset();
+ asset.uuid = item.getUUID();
+
+ //load standard meta data
asset.metaData = popuplateMetaData( item );
-
- if (item.getFormat().equals( AssetFormats.DSL_TEMPLATE_RULE)) {
- //ok here is where we do DSLs...
- throw new SerializableException("Can't load DSL rules just yet.");
-
- } else if (item.getFormat().equals( AssetFormats.BUSINESS_RULE )) {
- System.out.println("Contents:" + item.getContent());
- RuleModel model = BRLPersistence.getInstance().toModel( item.getContent() );
- asset.content = model;
- } else {
- //default to text, goode olde texte, just like mum used to make.
- RuleContentText text = new RuleContentText();
- text.content = item.getContent();
- asset.content = text;
-
- }
- asset.metaData.packageName = item.getPackageName();
- asset.uuid = uuid;
+ //load the content
+ AssetContentFormatHandler handler = new AssetContentFormatHandler();
+ handler.retrieveAssetContent(asset, item);
+
return asset;
}
@@ -242,6 +230,7 @@
MetaData popuplateMetaData(AssetItem item) {
MetaData meta = new MetaData();
+ meta.packageName = item.getPackageName();
List cats = item.getCategories();
meta.categories = new String[cats.size()];
@@ -283,38 +272,28 @@
public String checkinVersion(RuleAsset asset) throws SerializableException {
RulesRepository repo = getRulesRepository();
- AssetItem rule = repo.loadAssetByUUID( asset.uuid );
+ AssetItem repoAsset = repo.loadAssetByUUID( asset.uuid );
MetaData meta = asset.metaData;
- getMetaDataMapper().copyFromMetaData( meta, rule );
+ getMetaDataMapper().copyFromMetaData( meta, repoAsset );
- rule.updateDateEffective( dateToCalendar( meta.dateEffective ) );
- rule.updateDateExpired( dateToCalendar( meta.dateExpired ) );
+ repoAsset.updateDateEffective( dateToCalendar( meta.dateEffective ) );
+ repoAsset.updateDateExpired( dateToCalendar( meta.dateExpired ) );
- rule.updateCategoryList( meta.categories );
- updateContentToAsset( rule, asset );
+ repoAsset.updateCategoryList( meta.categories );
+ AssetContentFormatHandler handler = new AssetContentFormatHandler();
+ handler.storeAssetContent( asset, repoAsset );
+ repoAsset.checkin( meta.checkinComment );
-
- rule.checkin( meta.checkinComment );
-
- return rule.getUUID();
+ return repoAsset.getUUID();
}
- private void updateContentToAsset(AssetItem repoAsset, RuleAsset asset) throws SerializableException {
- if (asset.content instanceof RuleContentText) {
- repoAsset.updateContent( ((RuleContentText)asset.content).content );
- } else if (asset.content instanceof RuleModel) {
- RuleModel model = (RuleModel) asset.content;
- repoAsset.updateContent( BRLPersistence.getInstance().toXML( model ) );
- } else {
- throw new SerializableException("Not able to handle that type of content just yet...");
- }
- }
+
More information about the jboss-svn-commits
mailing list