001 /* 002 * JBoss, Home of Professional Open Source. 003 * Copyright 2008, Red Hat Middleware LLC, and individual contributors 004 * as indicated by the @author tags. See the copyright.txt file in the 005 * distribution for a full listing of individual contributors. 006 * 007 * This is free software; you can redistribute it and/or modify it 008 * under the terms of the GNU Lesser General Public License as 009 * published by the Free Software Foundation; either version 2.1 of 010 * the License, or (at your option) any later version. 011 * 012 * This software is distributed in the hope that it will be useful, 013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 015 * Lesser General Public License for more details. 016 * 017 * You should have received a copy of the GNU Lesser General Public 018 * License along with this software; if not, write to the Free 019 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 020 * 02110-1301 USA, or see the FSF site: http://www.fsf.org. 021 */ 022 package org.jboss.dna.sequencer.java.metadata; 023 024 import java.util.ArrayList; 025 import java.util.List; 026 027 /** 028 * Exposes meta data of a top level type. 029 * 030 * @author Serge Pagop 031 */ 032 public class TypeMetadata { 033 034 public static final int PUBLIC_MODIFIER = 0; 035 036 /** The name. */ 037 private String name; 038 039 /** All modifiers of a top level type */ 040 private List<ModifierMetadata> modifiers = new ArrayList<ModifierMetadata>(); 041 042 /** All annotations of a top level type */ 043 private List<AnnotationMetadata> annotations = new ArrayList<AnnotationMetadata>(); 044 045 /** All fields of a top level type */ 046 private List<FieldMetadata> fields = new ArrayList<FieldMetadata>(); 047 048 /** All methods of a top level type */ 049 private List<MethodMetadata> methods = new ArrayList<MethodMetadata>(); 050 051 /** 052 * Get the name. 053 * 054 * @return the name. 055 */ 056 public String getName() { 057 return name; 058 } 059 060 /** 061 * Set the name. 062 * 063 * @param name Sets name to the specified value. 064 */ 065 public void setName( String name ) { 066 this.name = name; 067 } 068 069 /** 070 * @return annotations 071 */ 072 public List<AnnotationMetadata> getAnnotations() { 073 return annotations; 074 } 075 076 /** 077 * @param annotations Sets annotations to the specified value. 078 */ 079 public void setAnnotations( List<AnnotationMetadata> annotations ) { 080 this.annotations = annotations; 081 } 082 083 /** 084 * @return modifiers 085 */ 086 public List<ModifierMetadata> getModifiers() { 087 return modifiers; 088 } 089 090 /** 091 * @param modifiers Sets modifiers to the specified value. 092 */ 093 public void setModifiers( List<ModifierMetadata> modifiers ) { 094 this.modifiers = modifiers; 095 } 096 097 /** 098 * Gets a ordered lists of {@link FieldMetadata} from the unit. 099 * 100 * @return all fields of this unit if there is one. 101 */ 102 public List<FieldMetadata> getFields() { 103 return this.fields; 104 } 105 106 /** 107 * @param fields Sets fields to the specified value. 108 */ 109 public void setFields( List<FieldMetadata> fields ) { 110 this.fields = fields; 111 } 112 113 /** 114 * Gets all {@link MethodMetadata} from the unit. 115 * 116 * @return all methods from the units. 117 */ 118 public List<MethodMetadata> getMethods() { 119 return methods; 120 } 121 122 /** 123 * @param methods Sets methods to the specified value. 124 */ 125 public void setMethods( List<MethodMetadata> methods ) { 126 this.methods = methods; 127 } 128 129 }