From 18b698912ad003c5f21014ce0c14c98726f2db35 Mon Sep 17 00:00:00 2001 From: Bill Napier Date: Fri, 14 May 2010 12:42:50 -0700 Subject: [PATCH] Annotation to allow auto-documenting of jython language bindings for MonkeyRunner API's. Change-Id: Ia0af839df646036a7ecd9f9c6ba02f98dc911f45 --- .../doc/MonkeyRunnerExported.java | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 tools/monkeyrunner/src/com/android/monkeyrunner/doc/MonkeyRunnerExported.java diff --git a/tools/monkeyrunner/src/com/android/monkeyrunner/doc/MonkeyRunnerExported.java b/tools/monkeyrunner/src/com/android/monkeyrunner/doc/MonkeyRunnerExported.java new file mode 100644 index 000000000..dd3eb0b57 --- /dev/null +++ b/tools/monkeyrunner/src/com/android/monkeyrunner/doc/MonkeyRunnerExported.java @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.doc; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Indicates that the annotated method is a public API to expose to the + * scripting interface. Can be used to generate documentation of what + * methods are exposed and also can be used to enforce visibility of + * these methods in the scripting environment. + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.TYPE }) +public @interface MonkeyRunnerExported { + /** + * A documentation string for this method. + */ + String doc(); + + /** + * The list of names for the keywords in this method in their proper positional order. + * + * For example: + * + * @MonkeyRunnerExported(args={"one", "two"}) + * public void foo(); + * + * would allow calls like this: + * foo(one=1, two=2) + * foo(1, 2) + */ + String[] args() default {}; + + /** + * The list of documentation for the arguments. + */ + String[] argDocs() default {}; + + /** + * The documentation for the return type of this method. + */ + String returns() default "returns nothing."; +} \ No newline at end of file