1 /* 2 * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package com.sun.tools.internal.xjc.outline; 27 28 import com.sun.tools.internal.xjc.generator.bean.ImplStructureStrategy; 29 30 /** 31 * Sometimes a single JAXB-generated bean spans across multiple Java classes/interfaces. 32 * We call them "aspects of a bean". 33 * 34 * <p> 35 * This is an enumeration of all possible aspects. 36 * 37 * @author Kohsuke Kawaguchi 38 * 39 * TODO: move this to the model package. We cannot do this before JAXB3 because of old plugins 40 */ 41 public enum Aspect { 42 /** 43 * The exposed part of the bean. 44 * <p> 45 * This corresponds to the content interface when we are geneting one. 46 * This would be the same as the {@link #IMPLEMENTATION} when we are 47 * just generating beans. 48 * 49 * <p> 50 * This could be an interface, or it could be a class. 51 * 52 * We don't have any other {@link ImplStructureStrategy} at this point, 53 * but generally you can't assume anything about where this could be 54 * or whether that's equal to {@link #IMPLEMENTATION}. 55 */ 56 EXPOSED, 57 /** 58 * The part of the bean that holds all the implementations. 59 * 60 * <p> 61 * This is always a class, never an interface. 62 */ 63 IMPLEMENTATION 64 }