001/*
002 * ====================================================================
003 *
004 * The Apache Software License, Version 1.1
005 *
006 * Copyright (c) 1999-2003 The Apache Software Foundation.  All rights
007 * reserved.
008 *
009 * Redistribution and use in source and binary forms, with or without
010 * modification, are permitted provided that the following conditions
011 * are met:
012 *
013 * 1. Redistributions of source code must retain the above copyright
014 *    notice, this list of conditions and the following disclaimer.
015 *
016 * 2. Redistributions in binary form must reproduce the above copyright
017 *    notice, this list of conditions and the following disclaimer in
018 *    the documentation and/or other materials provided with the
019 *    distribution.
020 *
021 * 3. The end-user documentation included with the redistribution, if
022 *    any, must include the following acknowledgement:
023 *       "This product includes software developed by the
024 *        Apache Software Foundation (http://www.apache.org/)."
025 *    Alternately, this acknowledgement may appear in the software itself,
026 *    if and wherever such third-party acknowledgements normally appear.
027 *
028 * 4. The names "The Jakarta Project", "Commons", and "Apache Software
029 *    Foundation" must not be used to endorse or promote products derived
030 *    from this software without prior written permission. For written
031 *    permission, please contact apache@apache.org.
032 *
033 * 5. Products derived from this software may not be called "Apache"
034 *    nor may "Apache" appear in their names without prior written
035 *    permission of the Apache Software Foundation.
036 *
037 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
038 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
039 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
040 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
041 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
042 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
043 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
044 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
045 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
046 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
047 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
048 * SUCH DAMAGE.
049 * ====================================================================
050 *
051 * This software consists of voluntary contributions made by many
052 * individuals on behalf of the Apache Software Foundation.  For more
053 * information on the Apache Software Foundation, please see
054 * <http://www.apache.org/>.
055 *
056 */
057package org.apache.wicket.util.diff.myers;
058
059/**
060 * <p>
061 * Title:
062 * </p>
063 * <p>
064 * Description:
065 * </p>
066 * <p>
067 * Copyright: Copyright (c) 2002
068 * </p>
069 * <p>
070 * Company:
071 * </p>
072 * 
073 * @author not attributable
074 * @version 1.0
075 */
076
077/**
078 * A diffnode in a diffpath.
079 * <p>
080 * A DiffNode and its previous node mark a delta between two input sequences, that is, two differing
081 * subsequences between (possibly zero length) matching sequences.
082 * 
083 * {@link DiffNode DiffNodes} and {@link Snake Snakes} allow for compression of diffpaths, as each
084 * snake is represented by a single {@link Snake Snake} node and each contiguous series of
085 * insertions and deletions is represented by a single {@link DiffNode DiffNodes}.
086 * 
087 * @version $Revision: 1.1 $ $Date: 2006/03/12 00:24:21 $
088 * @author <a href="mailto:juanco@suigeneris.org">Juanco Anez</a>
089 * 
090 */
091public final class DiffNode extends PathNode
092{
093        /**
094         * Constructs a DiffNode.
095         * <p>
096         * DiffNodes are compressed. That means that the path pointed to by the <code>prev</code>
097         * parameter will be followed using {@link PathNode#previousSnake} until a non-diff node is
098         * found.
099         * 
100         * @param i
101         *            the position in the original sequence
102         * @param j
103         *            the position in the revised sequence
104         * @param prev
105         *            the previous node in the path.
106         */
107        public DiffNode(final int i, final int j, final PathNode prev)
108        {
109                super(i, j, (prev == null ? null : prev.previousSnake()));
110        }
111
112        /**
113         * {@inheritDoc}
114         * 
115         * @return false, always
116         */
117        @Override
118        public boolean isSnake()
119        {
120                return false;
121        }
122
123}