Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.drools.guvnor.server.contenthandler;
 
 /*
  * Copyright 2005 JBoss Inc
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import  org.drools.guvnor.client.rpc.RuleAsset;
import  com.google.gwt.user.client.rpc.SerializableException;

This is used for handling jar models for the rules.

Author(s):
Michael Neale
public class ModelContentHandler extends ContentHandler {
	public void retrieveAssetContent(RuleAsset assetPackageItem pkg,
			AssetItem itemthrows SerializableException {
		// do nothing, as we have an attachment
	}
	public void storeAssetContent(RuleAsset assetAssetItem repoAsset)
			throws SerializableException {
		// do nothing, as we have an attachment
	}

This is called when a model jar is attached, it will peer into it, and then automatically add imports if there aren't any already in the package header configuration.
	public void modelAttached(AssetItem assetthrows IOException {
		PackageItem pkg = asset.getPackage();
		String header = ServiceImplementation.getDroolsHeader(pkg);
		if ( header == null || "".equals(header.trim())) {
			StringBuilder buf = new StringBuilder();
			JarInputStream jis = new JarInputStream(in);
			JarEntry entry = null;
			while ((entry = jis.getNextJarEntry()) != null) {
				if (!entry.isDirectory()) {
					if (entry.getName().endsWith(".class") && entry.getName().indexOf('$') == -1) {
						 buf.append("import " + convertPathToName(entry.getName()));
						 buf.append("\n");
					}
				}
			}
			ServiceImplementation.updateDroolsHeader(buf.toString(), pkg);
			//pkg.updateHeader(buf.toString());
			pkg.checkin("Imports setup automatically on model import.");
		}
	}
	public static String convertPathToName(String name) {
		return name.replace(".class""").replace("/"".");
	}
New to GrepCode? Check out our FAQ X