Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
COOS - Connected Objects Operating System (www.connectedobjects.org). Copyright (C) 2009 Telenor ASA and Tellu AS. All rights reserved. DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. This library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. You may also contact one of the following for additional information: Telenor ASA, Snaroyveien 30, N-1331 Fornebu, Norway (www.telenor.no) Tellu AS, Hagalokkveien 13, N-1383 Asker, Norway (www.tellu.no)
 
 package org.coos.messaging;
 
 
 
 
 
 import  com.sun.midp.io.Properties;
 
 public class PluginParser extends DefaultHandler {
 
 	private Vector plugins = new Vector();
 	private Vector channels = new Vector();
 	private Vector transports = new Vector();
 	private Vector processors = new Vector();
 
 	private Stack tagStack = new Stack();
 
 	// Tags
 	public static final String APPLICATION = "application";
 
 	public static final String PLUGIN = "plugin";
 	public static final String CHANNEL = "channel";
 	public static final String TRANSPORT = "transport";
 
 	public static final String PROPERTY = "property";
 
 	public static final String INBOUND = "inBound";
 	public static final String OUTBOUND = "outBound";
 	public static final String FILTER = "filter";
 
 	public static final String PROCESSOR = "processor";
 
 	public static final String JVM_TRANSPORT_CLASS = "no.tellu.messaging.cldc.transport.TCPTransport";
 
 
 
 	boolean inbound = false;
 
 
 	public PluginParser(COContainer cl) {
 		this. = cl;
 	}
 
 	public void startDocument() throws SAXException {
 	}
 
 	public void startElement(String uriString localNameString qNameAttributes attributesthrows SAXException {
 		if (.equals(qName)) {
			 = new PluginBundle(attributes.getValue("name"), attributes.getValue("channel"), attributes
					.getValue("class"), new Hashtable());
else if (.equals(qName)) {
			 = new TransportBundle(attributes.getValue("name"), attributes.getValue("class"), new Hashtable());
else if (.equals(qName)) {
			if ( != null) {
				..put(attributes.getValue("name"), attributes.getValue("value"));
else if ( != null) {
				..put(attributes.getValue("name"), attributes.getValue("value"));
else if ( != null) {
				..put(attributes.getValue("name"), attributes.getValue("value"));
			}
else if (.equals(qName)) {
			 = new ProcessorBundle(attributes.getValue("name"), attributes.getValue("class"), attributes
					.getValue("shared"), new Hashtable());
else if (.equals(qName)) {
			 = true;
else if (.equals(qName)) {
			if ()
				..addElement(new String(attributes.getValue("processor")));
			else
				..addElement(new String(attributes.getValue("processor")));
else if (.equals(qName)) {
			 = new ChannelBundle(attributes.getValue("name"), attributes.getValue("class"), attributes
					.getValue("segment"), attributes.getValue("transport"), new Hashtable());
		}
		.push(qName);
	}
	public void characters(char[] chint startint lengththrows SAXException {
		// String chars = new String(ch, start, length).trim();
		/*
		 * if (chars.length() > 0) { String qName =
		 * (String)phones.lastElement(); if(qName.equals("name")){
		 * currentPhone.setName(chars); } else if(qName.equals("colour")){
		 * currentPhone.setColour(chars); } }
		 */
	}
	public void endElement(String uriString localNameString qNamethrows SAXException {
		if (.equals(qName)) {
			 = null;
else if (.equals(qName)) {
			 = null;
else if (.equals(qName)) {
			 = null;
else if (.equals(qName)) {
			 = false;
else if (.equals(qName)) {
			 = null;
		}
	}
	public void endDocument() throws SAXException {
		/*
		 * StringBuffer result = new StringBuffer(); for (int i = 0; i <
		 * phones.size(); i++){ Phone currentPhone = (Phone)phones.elementAt(i);
		 * result.append(currentPhone.getName() + " is available in " +
		 * currentPhone.getColour() + "\n"); }
		 */
	}
	public void instanciatePlugins() {
		try {
			for (int i = 0; i < .size(); i++) {
				String name = .;
				if (processor.isShared()) {
					if ( == null) {
					}
				}
			}
			// create the plugins
			for (int i = 0; i < .size(); i++) {
				// TransportType transportType = model.getTransportArray()[i];
				// String name = transportType.getName();
				// String className = transportType.getClass1();
				// Map<String, String> props = new HashMap<String, String>();
				/*
				 * for (int j = 0; j < transportType.getPropertyArray().length;
				 * j++) { PropertyType propertyType =
				 * transportType.getPropertyArray()[j];
				 * props.put(propertyType.getName(), propertyType.getValue()); }
				 */
				String className = .;
				String name = .;
				Class transportClass = Class.forName(className);
				Transport transport = (TransporttransportClass.newInstance();
				.put(nametransport);
			}
			for (int i = 0; i < .size(); i++) {
				String className = .;
				String name = .;
				Class channelClass = Class.forName(className);
				Channel channel = (ChannelchannelClass.newInstance();
				String transportType = .;
				if (transportType != null) {
					boolean found = false;
						if (e.nextElement().equals(transportType)) {
							found = true;
							break;
						}
					}
					if (!found) {
						throw new Exception("Transport " + transportType + " is not declared.");
					}
					channel.setTransport((Transport) ((Transport.get(transportType)).copy());
					channel.setInit(true); // The Plugin shall always initiate a
											// connection
else {
					Class transportClass = Class.forName();
					Transport transport = (TransporttransportClass.newInstance();
					channel.setTransport(transport);
					channel.setInit(true); // The Plugin shall always initiate a
											// connection
				}
				String segment = .;// pluginType.getSegment();
				if (segment == null) {
					segment = "";
				}
				channel.setSegment(segment);
				Vector outBound = .;
				if (outBound != null) {
					for (int j = 0; j < outBound.size(); j++) {
						String processor = (StringoutBound.elementAt(j);
						ProcessorBundle procType = (ProcessorBundle.get(processor);
						if (procType == null) {
							throw new Exception("Processor " + processor + " is not declared.");
						}
						if (procType.shared.equals("true")) {
else {
						}
					}
				}
				Vector inBound = .;
				if (inBound != null) {
					for (int j = 0; j < inBound.size(); j++) {
						String processor = (StringinBound.elementAt(j);
						ProcessorBundle procType = (ProcessorBundle.get(processor);
						if (procType == null) {
							throw new Exception("Processor " + processor + " is not declared.");
						}
						if (procType.shared.equals("true")) {
else {
						}
					}
				}
				.put(namechannel);
			}
			for (int i = 0; i < .size(); i++) {
				Plugin plugin = new Plugin();
				// PluginType pluginType = model.getPluginArray()[i];
				String name = .;
				String className = .;
				String channel = .;
				Class pluginClass = Class.forName(className);
				Endpoint endpoint = (EndpointpluginClass.newInstance();
				endpoint.setCoContainer();
				endpoint.setEndpointUri("coos://" + name);
				URIHelper helper = new URIHelper(endpoint.getEndpointUri());
				if (helper.isEndpointUuid()) {
					endpoint.setEndpointUuid(name);
				}
				// Map<String, String> props = new HashMap<String, String>();
				/*
				 * for (int k = 0; k < pluginType.getPropertyArray().length;
				 * k++) { PropertyType propertyType =
				 * pluginType.getPropertyArray()[k];
				 * props.put(propertyType.getName(), propertyType.getValue()); }
				 */
				plugin.setEndpoint(endpoint);
				plugin.addChannel((Channel.get(channel));
				.put(. != null ? . : "plugin" + new Random().nextInt() % 100, plugin);
			}
catch (ClassNotFoundException err) {
catch (Exception err) {
		}
	}
	class PluginBundle {
		public Hashtable properties;// / = new Hashtable();
		public PluginBundle(String nameString channelString classNameHashtable properties) {
			this. = name;
			this. = channel;
			this. = className;
			this. = properties;
		}
	}
	class ChannelBundle {
		public Hashtable properties;// = new Hashtable();
		public Vector inBound = new Vector();
		public Vector outBound = new Vector();
		public ChannelBundle(String nameString classNameString segmentString transportHashtable properties) {
			super();
			this. = name;
			this. = className;
			this. = segment;
			this. = transport;
			this. = properties;
		}
	}
		public String nameclassName;
		public Hashtable properties;// = new Hashtable();
		public TransportBundle(String nameString classNameHashtable properties) {
			this. = name;
			this. = className;
			this. = properties;
		}
	}
		Hashtable properties;// = new Hashtable();
		public ProcessorBundle(String nameString classNameString sharedHashtable properties) {
			this. = name;
			this. = className;
			this. = shared;
			this. = properties;
		}
	}
	private static Processor instantiateProcessor(ProcessorBundle processorCOContainer cl)
		String className = processor.className;
		boolean isShared = processor.name.equals("true");
		/*
		 * Map<String, String> props = new HashMap<String, String>(); for (int j
		 * = 0; j < processorType.getPropertyArray().length; j++) { PropertyType
		 * propertyType = processorType.getPropertyArray()[j];
		 * props.put(propertyType.getName(), propertyType.getValue()); }
		 */
		Class procClass = cl.loadClass(className);
		Processor p = (ProcessorprocClass.newInstance();
		p.setProperties(processor.properties);
		p.setShared(new Boolean(isShared));
		return p;
	}
	public Plugin[] getPlugins() {
		Plugin[] retp = new Plugin[.size()];
		int counter = 0;
		for (Enumeration e = .keys(); e.hasMoreElements();) {
			retp[counter++] = (Plugin.get(e.nextElement());
		}
		return retp;
	}
New to GrepCode? Check out our FAQ X