/* Copyright (c) 2006 Ola Bini * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /** * $Id: Constructor.java,v 1.1 2006/06/06 19:19:11 olabini Exp $ */ package org.jvyaml; import java.util.Iterator; import org.jvyaml.nodes.Node; /** * @author <a href="mailto:ola.bini@ki.se">Ola Bini</a> * @version $Revision: 1.1 $ */ public interface Constructor { boolean checkData(); Object getData(); Iterator eachDocument(); Iterator iterator(); Object constructDocument(final Node node); Object constructObject(final Node node); Object constructPrimitive(final Node node); Object constructScalar(final Node node); Object constructPrivateType(final Node node); Object constructSequence(final Node node); Object constructMapping(final Node node); Object constructPairs(final Node node); interface YamlConstructor { Object call(final Constructor self, final Node node); } interface YamlMultiConstructor { Object call(final Constructor self, final String pref, final Node node); } }// Constructor