/** * Copyright (c) 2008-2013, http://www.snakeyaml.org * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.yaml.snakeyaml.events; import org.yaml.snakeyaml.error.Mark; /** * Basic unit of output from a {@link org.yaml.snakeyaml.parser.Parser} or input of a {@link org.yaml.snakeyaml.emitter.Emitter}. */ public abstract class Event { public enum ID { Alias, DocumentEnd, DocumentStart, MappingEnd, MappingStart, Scalar, SequenceEnd, SequenceStart, StreamEnd, StreamStart } private final Mark startMark; private final Mark endMark; public Event(final Mark startMark, final Mark endMark) { this.startMark = startMark; this.endMark = endMark; } @Override public String toString() { return "<" + this.getClass().getName() + "(" + getArguments() + ")>"; } public Mark getStartMark() { return startMark; } public Mark getEndMark() { return endMark; } /** * @see "__repr__ for Event in PyYAML" */ protected String getArguments() { return ""; } public abstract boolean is(Event.ID id); /* * for tests only */ @Override public boolean equals(final Object obj) { if (obj instanceof Event) { return toString().equals(obj.toString()); } else { return false; } } /* * for tests only */ @Override public int hashCode() { return toString().hashCode(); } }