diff options
author | afinkbein | 2008-04-30 00:00:25 +0000 |
---|---|---|
committer | afinkbein | 2008-04-30 00:00:25 +0000 |
commit | da03ac94064197567ad919ad7c7a5da71bef1410 (patch) | |
tree | 4b7c46f9a056f3df99c72cb909133ad04367b4b6 /org.eclipse.osee.framework.resource.locator.attribute | |
parent | 1231e26d884e4cff4844c202e515fc517d549c2b (diff) | |
download | org.eclipse.osee-da03ac94064197567ad919ad7c7a5da71bef1410.tar.gz org.eclipse.osee-da03ac94064197567ad919ad7c7a5da71bef1410.tar.xz org.eclipse.osee-da03ac94064197567ad919ad7c7a5da71bef1410.zip |
Diffstat (limited to 'org.eclipse.osee.framework.resource.locator.attribute')
8 files changed, 175 insertions, 0 deletions
diff --git a/org.eclipse.osee.framework.resource.locator.attribute/.classpath b/org.eclipse.osee.framework.resource.locator.attribute/.classpath new file mode 100644 index 00000000000..02159672985 --- /dev/null +++ b/org.eclipse.osee.framework.resource.locator.attribute/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.osee.framework.resource.locator.attribute/.project b/org.eclipse.osee.framework.resource.locator.attribute/.project new file mode 100644 index 00000000000..7d90409e1b2 --- /dev/null +++ b/org.eclipse.osee.framework.resource.locator.attribute/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.osee.framework.resource.locator.attribute</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.osee.framework.resource.locator.attribute/.settings/org.eclipse.pde.core.prefs b/org.eclipse.osee.framework.resource.locator.attribute/.settings/org.eclipse.pde.core.prefs new file mode 100644 index 00000000000..fe8cf7b05d8 --- /dev/null +++ b/org.eclipse.osee.framework.resource.locator.attribute/.settings/org.eclipse.pde.core.prefs @@ -0,0 +1,4 @@ +#Tue Apr 15 12:47:34 MST 2008
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/org.eclipse.osee.framework.resource.locator.attribute/META-INF/MANIFEST.MF b/org.eclipse.osee.framework.resource.locator.attribute/META-INF/MANIFEST.MF new file mode 100644 index 00000000000..59a2f24b246 --- /dev/null +++ b/org.eclipse.osee.framework.resource.locator.attribute/META-INF/MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Locator Plug-in +Bundle-SymbolicName: org.eclipse.osee.framework.resource.locator.attribute +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: org.eclipse.osee.framework.resource.locator.attribute.Activator +Bundle-Vendor: Boeing +Eclipse-LazyStart: true +Service-Component: OSGI-INF/locator.provider.attribute.xml +Import-Package: org.eclipse.osee.framework.resource.management, + org.eclipse.osee.framework.resource.management.exception, + org.osgi.framework;version="1.3.0" +Export-Package: org.eclipse.osee.framework.resource.locator.attribute diff --git a/org.eclipse.osee.framework.resource.locator.attribute/OSGI-INF/locator.provider.attribute.xml b/org.eclipse.osee.framework.resource.locator.attribute/OSGI-INF/locator.provider.attribute.xml new file mode 100644 index 00000000000..dc7131e8a49 --- /dev/null +++ b/org.eclipse.osee.framework.resource.locator.attribute/OSGI-INF/locator.provider.attribute.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?>
+<component name="resource.locator.attribute">
+ <implementation class="org.eclipse.osee.framework.resource.locator.attribute.AttributeLocatorProvider"/>
+ <service>
+ <provide interface="org.eclipse.osee.framework.resource.management.IResourceLocatorProvider"/>
+ </service>
+</component>
\ No newline at end of file diff --git a/org.eclipse.osee.framework.resource.locator.attribute/build.properties b/org.eclipse.osee.framework.resource.locator.attribute/build.properties new file mode 100644 index 00000000000..41eb6ade2b4 --- /dev/null +++ b/org.eclipse.osee.framework.resource.locator.attribute/build.properties @@ -0,0 +1,4 @@ +source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/org.eclipse.osee.framework.resource.locator.attribute/src/org/eclipse/osee/framework/resource/locator/attribute/Activator.java b/org.eclipse.osee.framework.resource.locator.attribute/src/org/eclipse/osee/framework/resource/locator/attribute/Activator.java new file mode 100644 index 00000000000..9f4d55359ea --- /dev/null +++ b/org.eclipse.osee.framework.resource.locator.attribute/src/org/eclipse/osee/framework/resource/locator/attribute/Activator.java @@ -0,0 +1,22 @@ +package org.eclipse.osee.framework.resource.locator.attribute; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +public class Activator implements BundleActivator { + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + } + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + } + +} diff --git a/org.eclipse.osee.framework.resource.locator.attribute/src/org/eclipse/osee/framework/resource/locator/attribute/AttributeLocatorProvider.java b/org.eclipse.osee.framework.resource.locator.attribute/src/org/eclipse/osee/framework/resource/locator/attribute/AttributeLocatorProvider.java new file mode 100644 index 00000000000..11087949d7c --- /dev/null +++ b/org.eclipse.osee.framework.resource.locator.attribute/src/org/eclipse/osee/framework/resource/locator/attribute/AttributeLocatorProvider.java @@ -0,0 +1,90 @@ +/*
+ * Created on Apr 15, 2008
+ *
+ * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE
+ */
+package org.eclipse.osee.framework.resource.locator.attribute;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
+import java.net.URI;
+import org.eclipse.osee.framework.resource.management.IResourceLocator;
+import org.eclipse.osee.framework.resource.management.IResourceLocatorProvider;
+import org.eclipse.osee.framework.resource.management.ResourceLocator;
+import org.eclipse.osee.framework.resource.management.exception.MalformedLocatorException;
+
+/**
+ * @author Roberto E. Escobar
+ */
+public class AttributeLocatorProvider implements IResourceLocatorProvider {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.framework.resource.management.IResourceLocatorProvider#generateResourceLocator(java.lang.String)
+ */
+ @Override
+ public IResourceLocator generateResourceLocator(String seed, String name) throws MalformedLocatorException {
+ URI uri = null;
+ try {
+ uri = new URI(generatePath(seed, name));
+ } catch (Exception ex) {
+ throw new MalformedLocatorException(ex);
+ }
+ return new ResourceLocator(uri);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.framework.resource.management.IResourceLocatorProvider#getResourceLocator(java.lang.String)
+ */
+ @Override
+ public IResourceLocator getResourceLocator(String path) throws MalformedLocatorException {
+ URI uri = null;
+ if (isPathValid(path) != false) {
+ try {
+ uri = new URI(path);
+ } catch (Exception ex) {
+ throw new MalformedLocatorException(ex);
+ }
+ } else {
+ throw new MalformedLocatorException(String.format("Invalid path hint: [%s]", path));
+ }
+ return new ResourceLocator(uri);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.framework.resource.management.IResourceLocatorProvider#isValid(java.lang.String)
+ */
+ @Override
+ public boolean isValid(String protocol) {
+ return isArgValid(protocol) != false && protocol.startsWith("attr") != false;
+ }
+
+ private boolean isArgValid(String value) {
+ return value != null && value.length() > 0;
+ }
+
+ private boolean isPathValid(String value) {
+ return isArgValid(value) && value.startsWith("attr://");
+ }
+
+ private String generatePath(String seed, String name) throws MalformedLocatorException {
+ StringBuilder builder = new StringBuilder("attr://");
+ if (isArgValid(seed) != false && isArgValid(name) != false) {
+ try {
+ char[] buffer = new char[3];
+ int cnt = -1;
+ Reader in = new StringReader(seed);
+ while ((cnt = in.read(buffer)) != -1) {
+ builder.append(buffer, 0, cnt);
+ builder.append("/");
+ }
+ } catch (IOException ex) {
+ throw new MalformedLocatorException(ex);
+ }
+ builder.append(name);
+ } else {
+ throw new MalformedLocatorException("Invalid arguments during locator generation.");
+ }
+ return builder.toString();
+ }
+}
|