View Javadoc

    1   /**
    2    * Copyright (c) 2008-2011, http://www.snakeyaml.org
    3    *
    4    * Licensed under the Apache License, Version 2.0 (the "License");
    5    * you may not use this file except in compliance with the License.
    6    * You may obtain a copy of the License at
    7    *
    8    *     http://www.apache.org/licenses/LICENSE-2.0
    9    *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   */
    16
    17  package org.yaml.snakeyaml.introspector;
    18
    19  public abstract class Property implements Comparable<Property> {
    20
    21      private final String name;
    22      private final Class<?> type;
    23
    24      public Property(String name, Class<?> type) {
    25          this.name = name;
    26          this.type = type;
    27      }
    28
    29      public Class<?> getType() {
    30          return type;
    31      }
    32
    33      abstract public Class<?>[] getActualTypeArguments();
    34
    35      public String getName() {
    36          return name;
    37      }
    38
    39      @Override
    40      public String toString() {
    41          return getName() + " of " + getType();
    42      }
    43
    44      public int compareTo(Property o) {
    45          return name.compareTo(o.name);
    46      }
    47
    48      public boolean isWritable() {
    49          return true;
    50      }
    51
    52      public boolean isReadable() {
    53          return true;
    54      }
    55
    56      abstract public void set(Object object, Object value) throws Exception;
    57
    58      abstract public Object get(Object object);
    59  }