001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portlet.exportimport.xstream;
016    
017    import com.thoughtworks.xstream.io.HierarchicalStreamReader;
018    
019    import java.util.Iterator;
020    
021    /**
022     * @author Daniel Kocsis
023     */
024    public class XStreamHierarchicalStreamReaderAdapter
025            implements XStreamHierarchicalStreamReader {
026    
027            public XStreamHierarchicalStreamReaderAdapter(
028                    HierarchicalStreamReader hierarchicalStreamReader) {
029    
030                    _hierarchicalStreamReader = hierarchicalStreamReader;
031            }
032    
033            @Override
034            public void close() {
035                    _hierarchicalStreamReader.close();
036            }
037    
038            @Override
039            public String getAttribute(int index) {
040                    return _hierarchicalStreamReader.getAttribute(index);
041            }
042    
043            @Override
044            public String getAttribute(String name) {
045                    return _hierarchicalStreamReader.getAttribute(name);
046            }
047    
048            @Override
049            public int getAttributeCount() {
050                    return _hierarchicalStreamReader.getAttributeCount();
051            }
052    
053            @Override
054            public String getAttributeName(int index) {
055                    return _hierarchicalStreamReader.getAttributeName(index);
056            }
057    
058            @Override
059            public Iterator<String> getAttributeNames() {
060                    return _hierarchicalStreamReader.getAttributeNames();
061            }
062    
063            @Override
064            public String getNodeName() {
065                    return _hierarchicalStreamReader.getNodeName();
066            }
067    
068            @Override
069            public String getValue() {
070                    return _hierarchicalStreamReader.getValue();
071            }
072    
073            @Override
074            public boolean hasMoreChildren() {
075                    return _hierarchicalStreamReader.hasMoreChildren();
076            }
077    
078            @Override
079            public void moveDown() {
080                    _hierarchicalStreamReader.moveDown();
081            }
082    
083            @Override
084            public void moveUp() {
085                    _hierarchicalStreamReader.moveUp();
086            }
087    
088            @Override
089            public XStreamHierarchicalStreamReader underlyingReader() {
090                    return new XStreamHierarchicalStreamReaderAdapter(
091                            _hierarchicalStreamReader.underlyingReader());
092            }
093    
094            private final HierarchicalStreamReader _hierarchicalStreamReader;
095    
096    }