OpenKeyWord  Build_ID: 457, Datum: 01.02.2020 07:45:48
Dont repeat yourself. - Do it once and only once!
okw.OKW_GetJavaClass Klassenreferenz
+ Zusammengehörigkeiten von okw.OKW_GetJavaClass:

Öffentliche, statische Methoden

static String findClassGuiAdapter (String fpsClassName)
 Methode sucht die Klasse fpsClassName im Namensraum "okw.gui.adapter". Mehr ...
 
static String findClass (String fpsClassName, String fpsNameSpace)
 Methode sucht die Klasse fpsClassName im Namensraum fpsNameSpace. Mehr ...
 
static ArrayList< String > getClasses (String fpsPackage) throws IOException, XPathExpressionException
 
static ArrayList< String > getClassPaths (String packageName) throws IOException
 Ermittel alle Pfade aus classpath, die das Paket packegeName im aktuellen threads enthalten. Mehr ...
 
static Class<?> loadClass (String fpsClass)
 
static Object createInstanceByType (Class<?> fpParentType) throws InstantiationException, XPathExpressionException
 Die Methode erzeugt eine Instanz der Rahmenklasse (frame class) mit dem in 'fps_ParentClassName' gegebenen Namen. Mehr ...
 
static ArrayList< Class<?> > getListOfClasses (String fpsNamespace) throws ClassNotFoundException, IOException, XPathExpressionException
 Methode erstellt eine Liste aller Klassen eines Namesraumes, die in der aktuell ausgeführten Assambly definiert sind. Mehr ...
 

Private, statische Methoden

static ArrayList< String > getClassesFromDirectory (String fpsdirectory, String packageName)
 Recursive method used to find all classes in a given directory and subdirs. Mehr ...
 
static ArrayList< String > getClassesFromJar (String jarPath, String packageName) throws IOException
 Returns the list of classes in the same directories as Classes in classes. Mehr ...
 

Statische, private Attribute

static Logger_Sngltn Log = Logger_Sngltn.getInstance()
 Zentrale Logger-Klasse stellt Logger-Methoden innerhalb von OKW zur Verfügung. Mehr ...
 
static LogMessenger LM = new LogMessenger( "FrameObjectDictionary" )
 LogMessenger liest Log-Meldungen sprachspezifisch für die im Konstruktor gegeben Klasse aus der Zugehörigen XML-Datei.
 

Ausführliche Beschreibung

Definiert in Zeile 22 der Datei OKW_GetJavaClass.java.

Dokumentation der Elementfunktionen

◆ createInstanceByType()

static Object okw.OKW_GetJavaClass.createInstanceByType ( Class<?>  fpParentType) throws InstantiationException, XPathExpressionException
static

Die Methode erzeugt eine Instanz der Rahmenklasse (frame class) mit dem in 'fps_ParentClassName' gegebenen Namen.

Zu beachten
WICHTIG: Die Klasse muss zwingend so heißen, wie angegeben. Hier wird kein 'Frame Präfix' ergänzt.
Parameter
fps_ParentClassNameName der Klasse
Rückgabe
Liefert die Instanz der Klasse.
Autor
Zoltan Hrabovszki
Datum
2014.10.10

Definiert in Zeile 346 der Datei OKW_GetJavaClass.java.

347  {
348  Object lvo_Obj = null;
349  Boolean bOK = false;
350 
351  Log.LogFunctionStartDebug( "FrameObjectDictionary.CreateInstanceByObjectName", "fpParentClass", fpParentType.getName() );
352 
353  try
354  {
355  // lvo_Obj = Activator.CreateInstance(fpParentType, null);
356 
357  lvo_Obj = fpParentType.newInstance();
358 
359  Log.LogPrintDebug( LM.GetMessage( "CreateInstanceByObjectName", "InstanceWasCreated", lvo_Obj.getClass().getName() ) );
360  bOK = true;
361  }
362  catch (IllegalAccessException e)
363  {
364  // EXCEPTION: Pürfen was hier genau passiert. Exception weitergeben
365  throw new OKWFrameObjectParentNotFoundException( LM.GetMessage( "CreateInstanceByObjectName", "InstanceWasCreated", fpParentType.getName() ) );
366  }
367  finally
368  {
369  if ( bOK )
370  {
371  // Wir sind ohne Exception durchgekommen und wir nehmen an,
372  // dass lvo_Obj != null
373  // -> wir geben den Namen des Objektes zurück...
374  Log.LogFunctionEndDebug( lvo_Obj.getClass().getName() );
375  }
376  else
377  {
378  // Irgend etwas ist faul wir rufen nur LogFunctionEndDebug
379  // auf...
381  }
382  }
383  return lvo_Obj;
384  }
+ Hier ist ein Graph, der zeigt, was diese Funktion aufruft:
+ Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

◆ findClass()

static String okw.OKW_GetJavaClass.findClass ( String  fpsClassName,
String  fpsNameSpace 
)
static

Methode sucht die Klasse fpsClassName im Namensraum fpsNameSpace.

Es wird der Vollqualifizerte Namen der Klasse zurück gegeben. Wird die gegebene Klasse nicht gefunden, dann wir "" zurückgegeben.

Parameter
fpsClassNameName der Klasse die gesucht werden soll.
fpsNameSpaceName-Space, in dem die Klasse gesucht werden soll.
Rückgabe
vollqualifizierte Name der Klasse
Autor
Zoltán Hrabovszki
Datum
02.11.2019

Definiert in Zeile 93 der Datei OKW_GetJavaClass.java.

94  {
95  String returnGUIAdapter = "";
96 
97  try
98  {
99  ArrayList<String> allAdapter = getClasses( fpsNameSpace );
100 
101  for ( String Adapter : allAdapter )
102  {
103  if ( Adapter.matches( ".*" + fpsClassName ) )
104  {
105  returnGUIAdapter = Adapter;
106  break;
107  }
108  }
109  }
110  catch (XPathExpressionException | IOException e)
111  {
112  // TODO Auto-generated catch block
113  e.printStackTrace();
114  }
115  finally
116  {
117 
118  }
119 
120  return returnGUIAdapter;
121  }
+ Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

◆ findClassGuiAdapter()

static String okw.OKW_GetJavaClass.findClassGuiAdapter ( String  fpsClassName)
static

Methode sucht die Klasse fpsClassName im Namensraum "okw.gui.adapter".

Es wird der Vollqualifizerte Namen der Klasse zurück gegeben. Wird die gegebene Klasse nicht gefunden, dann wir "" zurückgegeben.

Der Namansraum, in dem gesucht wird, kann mit dem Property "okw.gui.adapter" geändert werden.

Parameter
fpsClassNameName der Klasse die gesucht werden soll.
Rückgabe
vollqualifizierte Name der Klasse.
Autor
Zoltán Hrabovszki
Datum
02.11.2019

Definiert in Zeile 61 der Datei OKW_GetJavaClass.java.

62  {
63  String OKW_GuiAdapteNameSpace = OKW_Properties.getInstance().getProperty( "okw.gui.adapter", "okw.gui.adapter" );
64  return findClass( fpsClassName, OKW_GuiAdapteNameSpace );
65  }
+ Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

◆ getClassesFromDirectory()

static ArrayList<String> okw.OKW_GetJavaClass.getClassesFromDirectory ( String  fpsdirectory,
String  packageName 
)
staticprivate

Recursive method used to find all classes in a given directory and subdirs.

Parameter
directoryThe base directory
packageNameThe package name for classes found inside the base directory
Rückgabe
The classes
Ausnahmebehandlung
ClassNotFoundException

Definiert in Zeile 219 der Datei OKW_GetJavaClass.java.

220  {
221  ArrayList<String> classes = new ArrayList<String>();
222 
223  File directory = new File( fpsdirectory );
224 
225  if ( directory.exists() )
226  {
227 
228  File[] files = directory.listFiles();
229 
230  for ( File file : files )
231  {
232  if ( file.isDirectory() )
233  {
234  // assert !file.getName().contains( "." );
235  classes.addAll( getClassesFromDirectory( file.getPath(), packageName + "." + file.getName() ) );
236  }
237  else if ( file.getName().endsWith( ".class" ) )
238  {
239  // System.out.println( ">>Class: " + file.getName() );
240  classes.add( packageName + '.' + file.getName().substring( 0, file.getName().length() - 6 ) );
241  }
242  }
243  }
244  return classes;
245  }

◆ getClassesFromJar()

static ArrayList<String> okw.OKW_GetJavaClass.getClassesFromJar ( String  jarPath,
String  packageName 
) throws IOException
staticprivate

Returns the list of classes in the same directories as Classes in classes.

Parameter
result
classes
jarPath
Ausnahmebehandlung
IOException

Definiert in Zeile 258 der Datei OKW_GetJavaClass.java.

259  {
260  JarFile jarFile = null;
261  ArrayList<String> lvAL_Return = new ArrayList<String>();
262 
263  try
264  {
265  jarFile = new JarFile( jarPath );
266  Enumeration<JarEntry> en = jarFile.entries();
267  while ( en.hasMoreElements() )
268  {
269  JarEntry entry = en.nextElement();
270  String entryName = entry.getName();
271  packageName = packageName.replace( ".", "/" );
272 
273  if ( entryName != null && entryName.endsWith( ".class" ) && entryName.startsWith( packageName ) )
274  {
275  try
276  {
277  Class<?> entryClass = Class.forName( entryName.substring( 0, entryName.length() - 6 ).replace( "/", "." ) );
278 
279  if ( entryClass != null )
280  {
281  lvAL_Return.add( entryClass.getName() );
282  }
283  }
284  catch (Throwable e)
285  {
286  // do nothing, just continue processing classes
287  }
288  }
289  }
290  }
291  finally
292  {
293  if ( jarFile != null )
294  {
295  jarFile.close();
296  }
297  }
298 
299  return lvAL_Return;
300  }

◆ getClassPaths()

static ArrayList<String> okw.OKW_GetJavaClass.getClassPaths ( String  packageName) throws IOException
static

Ermittel alle Pfade aus classpath, die das Paket packegeName im aktuellen threads enthalten.

Parameter
packageNameName des P
Rückgabe
Liste der Klassen-Pfade () im gegebenem package
Ausnahmebehandlung
IOException

Definiert in Zeile 183 der Datei OKW_GetJavaClass.java.

184  {
185  ArrayList<String> ReturnList = new ArrayList<String>();
186 
187  ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
188 
189  String path = packageName.replace( '.', '/' );
190 
191  Enumeration<URL> resources = classLoader.getResources( path );
192 
193  while ( resources.hasMoreElements() )
194  {
195  URL resource = resources.nextElement();
196 
197  String replacedURL = resource.getPath();
198 
199  /* replacedURL = replacedURL.replaceFirst( "/", "" ); */
200 
201  Log.LogPrint( "'" + replacedURL + "'" );
202  ReturnList.add( replacedURL );
203  }
204 
205  return ReturnList;
206  }
+ Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

◆ getListOfClasses()

static ArrayList<Class<?> > okw.OKW_GetJavaClass.getListOfClasses ( String  fpsNamespace) throws ClassNotFoundException, IOException, XPathExpressionException
static

Methode erstellt eine Liste aller Klassen eines Namesraumes, die in der aktuell ausgeführten Assambly definiert sind.

Zu beachten
WICHTIG: Es werden alle Klassen in die Liste aufgenommen, die
  1. dem gegebene Namepsace zugeordent sind.

\parameter fpsNamespace Namesraum, die nach Klassen durchsucht werden soll.

Rückgabe
Liefert die Liste der Klasse, die der Namespace OKW.Frames und mit dem Attribute OKWGUI vershen sind.
Autor
Zoltan Hrabovszki
Datum
2014.10.10
Ausnahmebehandlung
XPathExpressionException

Definiert in Zeile 411 der Datei OKW_GetJavaClass.java.

412  {
413  // String lvsNamespace = "okw.gui.frames";
414  ArrayList<Class<?>> lvALReturn = new ArrayList<Class<?>>();
415 
416  ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
417 
418  // 1. Hole alle Klassen, die sich im Package "okw.gui.frames" befinden
419  ArrayList<String> lvALClassNames = OKW_GetJavaClass.getClasses( fpsNamespace );
420 
421  try
422  {
423  for ( String lvsClass : lvALClassNames )
424  {
425  Class<?> aClass = classLoader.loadClass( lvsClass );
426  lvALReturn.add( aClass );
427  }
428  }
429  catch (ClassNotFoundException e)
430  {
431  e.printStackTrace();
432  }
433 
434  return lvALReturn;
435  }

Dokumentation der Datenelemente

◆ Log

Logger_Sngltn okw.OKW_GetJavaClass.Log = Logger_Sngltn.getInstance()
staticprivate

Zentrale Logger-Klasse stellt Logger-Methoden innerhalb von OKW zur Verfügung.

Definiert in Zeile 27 der Datei OKW_GetJavaClass.java.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:
okw.OKW_GetJavaClass.Log
static Logger_Sngltn Log
Zentrale Logger-Klasse stellt Logger-Methoden innerhalb von OKW zur Verfügung.
Definition: OKW_GetJavaClass.java:27
okw.log.Logger_Sngltn.LogFunctionEndDebug
void LogFunctionEndDebug()
LogFunctionEndDebug:
Definition: Logger_Sngltn.java:249
okw.OKW_GetJavaClass.LM
static LogMessenger LM
LogMessenger liest Log-Meldungen sprachspezifisch für die im Konstruktor gegeben Klasse aus der Zugeh...
Definition: OKW_GetJavaClass.java:32
okw.OKW_GetJavaClass.findClass
static String findClass(String fpsClassName, String fpsNameSpace)
Methode sucht die Klasse fpsClassName im Namensraum fpsNameSpace.
Definition: OKW_GetJavaClass.java:93
okw.log.Logger_Sngltn.LogFunctionStartDebug
void LogFunctionStartDebug(String fps_FunctionName, String... fpsParameter)
LogFunctionStartDebug:
Definition: Logger_Sngltn.java:311
okw.OKW_GetJavaClass.getClassesFromDirectory
static ArrayList< String > getClassesFromDirectory(String fpsdirectory, String packageName)
Recursive method used to find all classes in a given directory and subdirs.
Definition: OKW_GetJavaClass.java:219
okw.log.Logger_Sngltn.LogPrint
void LogPrint(String fps_Message)
LogPrint Function: Prints the values of expressions to the results file.
Definition: Logger_Sngltn.java:487
okw.log.Logger_Sngltn.LogPrintDebug
void LogPrintDebug(String fpsMessage)
Loggt eine Nachricht.
Definition: Logger_Sngltn.java:520
okw.LogMessenger.GetMessage
String GetMessage(String MethodName, String TextKey)
Holt die Log-Meldung für MethodeNmae/Textkey ohne weitere Parameter.
Definition: LogMessenger.java:137