You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by sc...@apache.org on 2014/02/07 14:43:43 UTC

svn commit: r1565650 - in /wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl: DefaultWidgetImpl.java DefaultWidgetMetadataService.java

Author: scottbw
Date: Fri Feb  7 13:43:43 2014
New Revision: 1565650

URL: http://svn.apache.org/r1565650
Log:
added default widget metadata service

Added:
    wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultWidgetImpl.java
    wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultWidgetMetadataService.java

Added: wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultWidgetImpl.java
URL: http://svn.apache.org/viewvc/wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultWidgetImpl.java?rev=1565650&view=auto
==============================================================================
--- wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultWidgetImpl.java (added)
+++ wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultWidgetImpl.java Fri Feb  7 13:43:43 2014
@@ -0,0 +1,34 @@
+package org.apache.wookie.services.impl;
+
+import org.apache.wookie.beans.IWidget;
+import org.apache.wookie.w3c.impl.WidgetEntity;
+import org.jdom.Element;
+
+public class DefaultWidgetImpl extends WidgetEntity implements IWidget{
+	
+	/**
+	 * The path to the original .wgt package
+	 */
+	private String packagePath;
+
+	@Override
+	public Object getId() {
+		return this.getIdentifier();
+	}
+
+	@Override
+	public Element toXml() {
+		return null;
+	}
+
+	@Override
+	public String getPackagePath() {
+		return this.packagePath;
+	}
+
+	@Override
+	public void setPackagePath(String path) {
+		this.packagePath = path;
+	}
+
+}

Added: wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultWidgetMetadataService.java
URL: http://svn.apache.org/viewvc/wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultWidgetMetadataService.java?rev=1565650&view=auto
==============================================================================
--- wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultWidgetMetadataService.java (added)
+++ wookie/trunk/wookie-services/wookie-spi/src/main/java/org/apache/wookie/services/impl/DefaultWidgetMetadataService.java Fri Feb  7 13:43:43 2014
@@ -0,0 +1,94 @@
+/*
+ * 
+ * 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.
+ * 
+ */
+package org.apache.wookie.services.impl;
+
+import java.util.HashMap;
+
+import org.apache.wookie.beans.IWidget;
+import org.apache.wookie.services.WidgetMetadataService;
+import org.apache.wookie.w3c.W3CWidget;
+
+/**
+ * Default implementation of a widget metadata service. This is backed by a hashmap
+ * in memory.
+ */
+public class DefaultWidgetMetadataService implements WidgetMetadataService {
+	
+	private HashMap<String, IWidget> widgets;
+	
+	public DefaultWidgetMetadataService(){
+		this.widgets = new HashMap<String, IWidget>();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.apache.wookie.services.WidgetMetadataService#removeWidget(org.apache.wookie.beans.IWidget)
+	 */
+	@Override
+	public void removeWidget(IWidget widget) {
+		widgets.remove(widget.getIdentifier());
+	}
+
+	/* (non-Javadoc)
+	 * @see org.apache.wookie.services.WidgetMetadataService#updateWidget(java.lang.String, org.apache.wookie.beans.IWidget)
+	 */
+	@Override
+	public void updateWidget(IWidget widget, W3CWidget manifest) {
+		IWidget newWidget = createWidget(manifest, widget.getPackagePath());
+		widgets.put(widget.getIdentifier(), newWidget);
+	}
+
+	@Override
+	public IWidget importWidget(W3CWidget manifest, String packagePath) {
+		IWidget widget = createWidget(manifest, packagePath);
+		widgets.put(widget.getIdentifier(), widget);
+		return widget;
+	}
+
+	@Override
+	public IWidget getWidget(String identifier) {
+		return widgets.get(identifier);
+	}
+
+	@Override
+	public IWidget[] getAllWidgets() {
+		return widgets.values().toArray(new IWidget[widgets.size()]);		
+	}
+	
+	private IWidget createWidget(W3CWidget manifest, String packagePath) {
+		DefaultWidgetImpl widget = new DefaultWidgetImpl();
+		widget.setPackagePath(packagePath);
+		widget.setAuthor(manifest.getAuthor());
+		widget.setContentList(manifest.getContentList());
+		widget.setDefaultLocale(manifest.getDefaultLocale());
+		widget.setDescriptions(manifest.getDescriptions());
+		widget.setDir(manifest.getDir());
+		widget.setFeatures(manifest.getFeatures());
+		widget.setHeight(manifest.getHeight());
+		widget.setIcons(manifest.getIcons());
+		widget.setIdentifier(manifest.getIdentifier());
+		widget.setLang(manifest.getLang());
+		widget.setLicenses(manifest.getLicenses());
+		widget.setNames(manifest.getNames());
+		widget.setPreferences(manifest.getPreferences());
+		widget.setUpdateLocation(manifest.getUpdateLocation());
+		widget.setVersion(manifest.getVersion());
+		widget.setWidth(manifest.getWidth());
+		
+		return widget;
+	}
+
+}