All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.gwt.i18n.server.Parameter Maven / Gradle / Ivy

/*
 * Copyright 2011 Google Inc.
 *
 * 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.google.gwt.i18n.server;

import com.google.gwt.i18n.shared.AlternateMessageSelector;

import java.lang.annotation.Annotation;

/**
 * A parameter in a Messages method. 
 */
public interface Parameter {

  /**
   * Get an {@link AlternateMessageSelector} instance associated with this
   * parameter, or null if none.
   * 
   * @return {@link AlternateMessageSelector} instance or null
   */
  AlternateMessageSelector getAlternateMessageSelector();

  /**
   * Get an annotation from this parameter.
   * 
   * @param 
   * @param annotClass
   * @return annotation instance or null if not present
   */
   A getAnnotation(Class annotClass);

  /**
   * Get parameter index, starting from 0.
   * 
   * @return parameter index
   */
  int getIndex();

  /**
   * Get the name of this parameter.  Note that this may be expensive (ie, if
   * based on reflection this will require reading/parsing source), so this
   * should only be called if actually needed.
   *
   * @return parameter name, or "arg" + {@link #getIndex()} if it cannot be
   *     determined
   */
  String getName();

  /**
   * Get the type of this parameter.
   * 
   * @return the parameter type
   */
  Type getType();

  /**
   * Check if an annotation is present on this parameter.
   * 
   * @param annotClass
   * @return true if present, otherwise false
   */
  boolean isAnnotationPresent(Class annotClass);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy