Added specific webService class and changed from Multiprintstream to java.logger.Logger

This commit is contained in:
Ziver Koc 2010-08-13 22:36:08 +00:00
parent 3d4b05c697
commit 19b5b822a9
11 changed files with 464 additions and 279 deletions

View file

@ -0,0 +1,112 @@
package zutil.network.ws;
import java.lang.annotation.*;
/**
*
* Specifies web service parameter names and other things.
* Example:
* <pre>
* private static class Test implements WSInterface{
* public Test(){}
*
* @WSDocumentation("blabla")
* @WSDLParamDocumentation("olle = an variable?")
* public void pubZ(
* @WSParamName("olle") int lol)
* throws Exception{
* ....
* }
*
* @WSReturnName("param")
* public String pubA(
* @WSParamName(value="lol", optional=true) String lol)
* throws Exception{
* ....
* }
*
* @WSDisabled()
* public void privaZ(....){
* ...
* }
* }
*
* </pre>
* @author Ziver
*/
public interface WSInterface {
/**
* Annotation that assigns a name to an parameters
* in an method.
*
* @author Ziver
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
public @interface WSParamName {
String value();
boolean optional() default false;
}
/**
* Annotation that assigns a name to the return value
* in an method.
*
* @author Ziver
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface WSReturnName {
String value();
}
/**
* Disables publication of the given method
*
* @author Ziver
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface WSDisabled { }
/**
* Method or Parameter comments for the WSDL.
* These comments are put in the message part of the WSDL
*
* @author Ziver
*/
@Retention(RetentionPolicy.RUNTIME)
public @interface WSDocumentation{
String value();
}
/**
* Parameter comments for the WSDL.
* These comments are put in the message part of the WSDL
*
* @author Ziver
*/
@Retention(RetentionPolicy.RUNTIME)
public @interface WSParamDocumentation{
String value();
}
/**
* This method will be used in the header.
*
* @author Ziver
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface WSHeader { }
/**
* Specifies the name space for the method.
*
* @author Ziver
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface WSNamespace {
String value();
}
}