325N/A * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 325N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 325N/A * This code is free software; you can redistribute it and/or modify it 325N/A * under the terms of the GNU General Public License version 2 only, as 325N/A * published by the Free Software Foundation. Oracle designates this 325N/A * particular file as subject to the "Classpath" exception as provided 325N/A * by Oracle in the LICENSE file that accompanied this code. 325N/A * This code is distributed in the hope that it will be useful, but WITHOUT 325N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 325N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 325N/A * version 2 for more details (a copy is included in the LICENSE file that 325N/A * accompanied this code). 325N/A * You should have received a copy of the GNU General Public License version 325N/A * 2 along with this work; if not, write to the Free Software Foundation, 325N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 325N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 325N/A * or visit www.oracle.com if you need additional information or have any 325N/A * {@link ParticleBinder} that uses {@link ExpressionBuilder} et al 325N/A * for better, more intuitive (but non spec-conforming) binding. 325N/A * @author Kohsuke Kawaguchi 325N/A // this class isn't about spec conformance, but 325N/A // for the ease of use. 325N/A // so we don't give a damn about 'forcedProps'. 325N/A // although, for a future note, it's conceivable to expand 325N/A // the binding algorithm to cover this notion. 325N/A * Builds a property ouf ot a connected component. 325N/A assert false : e;
// no other kind should be here 325N/A * Finds a {@link XSParticle} that can serve as the representative property of 325N/A * the given {@link ConnectedComponent}. 325N/A * The representative property is used for reporting an error location and 325N/A * taking {@link BIProperty} customization. Right now, the algorithm is just pick 325N/A * the first one with {@link BIProperty}, but one can think of a better algorithm, 325N/A * such as taking a choice of (A|B) if CC={A,B}. 325N/A // if there are multiple property customizations, 325N/A // all but one will be left unused, which will be detected as an error 325N/A // later, so no need to check that now. 325N/A // if no customization was found, just use the first one. 325N/A // this algorithm never falls back to 'getContent'.