Author: mvitenkov
Date: 2008-10-22 07:47:37 -0400 (Wed, 22 Oct 2008)
New Revision: 10861
Added:
trunk/test-applications/jsp/src/main/java/util/parser/
trunk/test-applications/jsp/src/main/java/util/parser/TLDParser.java
Log:
TLDParser for getting all attributes from richfaces.tld
Added: trunk/test-applications/jsp/src/main/java/util/parser/TLDParser.java
===================================================================
--- trunk/test-applications/jsp/src/main/java/util/parser/TLDParser.java
(rev 0)
+++ trunk/test-applications/jsp/src/main/java/util/parser/TLDParser.java 2008-10-22
11:47:37 UTC (rev 10861)
@@ -0,0 +1,78 @@
+package util.parser;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.RandomAccessFile;
+import java.util.ArrayList;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+public class TLDParser {
+
+ protected String component;
+ protected JarEntry tld;
+ protected JarFile richfacesUI;
+ protected ArrayList<String> allAttributes;
+
+ public TLDParser(String str) {
+ this.component = str;
+ allAttributes = new ArrayList<String>();
+ }
+
+ public ArrayList<String> getAllAttributes() {
+
+ tld = getRichfacesUI().getJarEntry("META-INF/richfaces.tld");
+ InputStream input = null;
+ try {
+ input = richfacesUI.getInputStream(tld);
+
+ InputStreamReader isr = new InputStreamReader(input);
+ BufferedReader reader = new BufferedReader(isr);
+ String line, attribute;
+ int position, end;
+ while ((line = reader.readLine()) != null) {
+ if ((position = line.indexOf("<name>")) != -1) {
+ end = line.indexOf("</name>");
+ attribute = line.substring(position + 6, end).trim();
+ allAttributes.add(attribute);
+ }
+ }
+ reader.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return allAttributes;
+ }
+
+ public String getExtPath() {
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ String resource = "META-INF/richfaces.tld";
+ return loader.getResource(resource).toString();
+ }
+
+ public String getComponent() {
+ return component;
+ }
+
+ public void setComponent(String component) {
+ this.component = component;
+ }
+
+ public JarFile getRichfacesUI() {
+ String temp = null;
+ int position;
+ try {
+ if ((position = getExtPath().indexOf('!')) != -1) {
+ temp = getExtPath().substring("jar:file:\\".length(), position);
+ }
+ richfacesUI = new JarFile(temp);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return richfacesUI;
+ }
+}
Show replies by date