From e72f145db006c09ceab583f091e3f750189077bc Mon Sep 17 00:00:00 2001
From: ulrich@undisclosed <ulrich@ulrich-vaio>
Date: Sat, 02 May 2020 16:04:04 +0000
Subject: [PATCH] Kleinere Anpassungen

---
 src/de/uhilger/transit/JavaServer.java |   68 ++++++++++++++++++++++-----------
 1 files changed, 45 insertions(+), 23 deletions(-)

diff --git a/src/de/uhilger/transit/JavaServer.java b/src/de/uhilger/transit/JavaServer.java
index 5b993dd..9ef6931 100644
--- a/src/de/uhilger/transit/JavaServer.java
+++ b/src/de/uhilger/transit/JavaServer.java
@@ -56,8 +56,10 @@
 	 * 
 	 * @param klassenName  voller Name der gesuchten Klasse, z.B. java.lang.String
 	 * @return  die Klasse oder null, wenn keine Klasse mit diesem Namen gefunden wurde
+   * @throws java.lang.Exception
 	 */
 	@SuppressWarnings("rawtypes")
+  @Override
 	public Class klasseFinden(String klassenName) throws Exception {
 		Class c = null;
 		c = Class.forName(klassenName);
@@ -68,16 +70,18 @@
 	 * Eine Methode ausfuehren
 	 * 
 	 * Diese Methode sieht vor, dass ein Methodenname nur einmal in einer 
-	 * Klasse vorkommt. In Faellen, wo mehrere Methoden einer Klasse den 
-	 * selben Namen haben, wird die erste Methode dieses Namens verwendet. 
+	 * Klasse vorkommt.In Faellen, wo mehrere Methoden einer Klasse den 
+ selben Namen haben, wird die erste Methode dieses Namens verwendet. 
 	 * 
 	 * @param klassenName  Name der Klasse
 	 * @param methodenName  Name der Methode
 	 * @param format  das Format, das Parameter und Rueckgabewert haben
 	 * @param parameter  die Parameter der Methode
 	 * @return  der Rueckgabewert der Methode nach der Ausfuehrung
+   * @throws java.lang.Exception
 	 */
 	@SuppressWarnings("rawtypes")
+  @Override
 	public Object methodeAusfuehren(String klassenName, String methodenName, String format, Object... parameter) throws Exception {
 		Object resultat = null;
 		Class c = klasseFinden(klassenName);
@@ -91,22 +95,24 @@
 	 * Eine Methode ausfuehren
 	 * 
 	 * Diese Methode sieht vor, dass ein Methodenname nur einmal in einer 
-	 * Klasse vorkommt. In Faellen, wo mehrere Methoden einer Klasse den 
-	 * selben Namen haben, wird die erste Methode dieses Namens verwendet. 
+	 * Klasse vorkommt.In Faellen, wo mehrere Methoden einer Klasse den 
+ selben Namen haben, wird die erste Methode dieses Namens verwendet. 
 	 * 
 	 * @param o  ein Objekt der Klasse, die die auszufuehrende Methode enthaelt
 	 * @param methodenName  Name der Methode
 	 * @param format  das Format, das Parameter und Rueckgabewert haben
 	 * @param parameter  die Parameter der Methode
 	 * @return  der Rueckgabewert der Methode nach der Ausfuehrung
+   * @throws java.lang.Exception
 	 */
 	@SuppressWarnings("rawtypes")
+  @Override
 	public Object methodeAusfuehren(Object o, String methodenName, String format, Object... parameter) throws Exception {
 		Object resultat = null;
 		if(o != null) {
 			Class c = o.getClass();
 			Method m = findeMethode(c.getDeclaredMethods(), methodenName);
-			resultat = methodeAusfuehren(o, m, format, parameter);
+      resultat = methodeAusfuehren(o, m, format, parameter);
 		}
 		return resultat;
 	}
@@ -119,28 +125,35 @@
 	 * @param format  das Format, das Parameter und Rueckgabewert haben
 	 * @param parameter  die Parameter der Methode
 	 * @return  der Rueckgabewert der Methode nach der Ausfuehrung
+   * @throws java.lang.Exception
 	 */
 	@SuppressWarnings("rawtypes")
+  @Override
 	public Object methodeAusfuehren(Object o, Method methode, String format, Object... parameter) throws Exception {
 		Object resultat = null;
 		if(methode != null) {
-			resultat = methode.invoke(o, parameterKonvertieren(methode, parameter, format));
-			Class returnType = methode.getReturnType();
-			/*
-			 * Wenn der Rueckgabewert der Methode nicht vom Typ String ist, 
-			 * wird das Objekt in das Format verwandelt, das der Standardwandler 
-			 * liefert, z.B. JSON
-			 */
-			if(!returnType.getName().equals("java.lang.String")) {
-        //resultat = new JsonWandler().vonJava(resultat, returnType);
-        Wandler w = wandler.get(format);
-        if(w != null) {
-    			resultat = w.vonJava(resultat, returnType);
+      Access access = methode.getAnnotation(Access.class);
+      if(access == null || access.type().equals(Access.Type.ALLOW)) {
+        resultat = methode.invoke(o, parameterKonvertieren(methode, parameter, format));
+        Class returnType = methode.getReturnType();
+        /*
+         * Wenn der Rueckgabewert der Methode nicht vom Typ String ist, 
+         * wird das Objekt in das Format verwandelt, das der Standardwandler 
+         * liefert, z.B. JSON
+         */
+        if(!returnType.getName().equals("java.lang.String")) {
+          //resultat = new JsonWandler().vonJava(resultat, returnType);
+          Wandler w = wandler.get(format);
+          if(w != null) {
+            resultat = w.vonJava(resultat, returnType);
+          }
+          /*if(format == Wandler.JSON) {
+            resultat = new JsonWandler().vonJava(resultat, returnType);
+          }*/
         }
-        /*if(format == Wandler.JSON) {
-  			  resultat = new JsonWandler().vonJava(resultat, returnType);
-        }*/
-			}
+      } else {
+        // nicht zum Zugriff vorgesehen
+      }
 		}
 		return resultat;
 	}
@@ -150,7 +163,9 @@
 	 * 
 	 * @param m
 	 * @param parameter
+   * @param format
 	 * @return
+   * @throws java.lang.Exception
 	 */
 	@SuppressWarnings("rawtypes")
 	protected Object[] parameterKonvertieren(Method m, Object[] parameter, String format) throws Exception {
@@ -170,8 +185,10 @@
 	 * 
 	 * @param c  die Klasse, in deren Typ umgewandelt werden soll
 	 * @param parameter  der Wert, der umgewandelt werden soll
+   * @param format
 	 * @return der Parameter umgewandelt in den gewuenschten Typ oder null, falls 
 	 * die Umwandlung nicht gelang
+   * @throws java.lang.Exception
 	 */
 	@SuppressWarnings("rawtypes")
 	protected Object toType(Class c, String parameter, String format) throws Exception {
@@ -232,15 +249,17 @@
 	 * Eine Methode heraussuchen
 	 * 
 	 * Diese Methode sieht vor, dass ein Methodenname nur einmal in einer 
-	 * Klasse vorkommt. In Faellen, wo mehrere Methoden einer Klasse den 
-	 * selben Namen haben, wird die erste Methode dieses Namens geliefert. 
+	 * Klasse vorkommt.In Faellen, wo mehrere Methoden einer Klasse den 
+ selben Namen haben, wird die erste Methode dieses Namens geliefert. 
 	 * 
 	 * @param klassenName  Name der Klasse
 	 * @param methodenName Name der gesuchten Mthode
 	 * @return  die Methode oder null, wenn keine Methode mit diesem Namen
 	 * in der angegebenen Klasse gefunden wurde
+   * @throws java.lang.Exception
 	 */
 	@SuppressWarnings("rawtypes")
+  @Override
 	public Method methodeFinden(String klassenName, String methodenName) throws Exception {
 		Method m = null;
 		Class klasse = Class.forName(klassenName);
@@ -255,6 +274,7 @@
    * 
    * @param wandler  der Wandler, der entfernt werden soll
    */
+  @Override
 	public void wandlerEntfernen(Wandler wandler) {
 		this.wandler.remove(wandler.getFormat());
 	}
@@ -264,6 +284,7 @@
    * 
    * @param wandler  der Wandler, der hinzugefuegt werden soll
    */
+  @Override
 	public void wandlerHinzufuegen(Wandler wandler) {
 		this.wandler.put(wandler.getFormat(), wandler);
 	}
@@ -271,6 +292,7 @@
   /**
    * Diese Instanz aufloesen, also alle Ressourcen frei geben 
    */
+  @Override
   public void aufloesen() {
     Set keySet = wandler.keySet();
     Iterator i = keySet.iterator();

--
Gitblit v1.9.3