001 // Copyright 2010 Waterken Inc. under the terms of the MIT X license
002 // found at http://www.opensource.org/licenses/mit-license.html
003 package org.waterken.syntax;
004
005 import java.io.Serializable;
006
007 import org.joe_e.Struct;
008
009 /**
010 * A {@linkplain Exporter#apply exported} value.
011 */
012 public class Export extends Struct implements Serializable {
013 static private final long serialVersionUID = 1L;
014
015 /**
016 * object to transmit instead of the exported reference
017 */
018 public final Object replacement;
019
020 /**
021 * URI for the exported reference
022 */
023 public final String href;
024
025 /**
026 * Constructs a replacement instance.
027 * @param replacement {@link #replacement}
028 */
029 public
030 Export(final Object replacement) {
031 this.replacement = replacement;
032 this.href = null;
033 }
034
035 /**
036 * Constructs an exported link.
037 * @param href {@link #href}
038 */
039 public
040 Export(final String href) {
041 this.replacement = null;
042 this.href = href;
043 }
044 }