001/*
002 * Copyright (c) 2006-2011 Nuxeo SA (http://nuxeo.com/) and others.
003 *
004 * All rights reserved. This program and the accompanying materials
005 * are made available under the terms of the Eclipse Public License v1.0
006 * which accompanies this distribution, and is available at
007 * http://www.eclipse.org/legal/epl-v10.html
008 *
009 * Contributors:
010 *     bstefanescu
011 *
012 * $Id$
013 */
014
015package org.nuxeo.ecm.platform.rendering.fm.adapters;
016
017import java.util.Iterator;
018
019import org.nuxeo.ecm.core.api.model.Property;
020
021import freemarker.template.AdapterTemplateModel;
022import freemarker.template.TemplateModel;
023import freemarker.template.TemplateModelException;
024import freemarker.template.TemplateModelIterator;
025
026/**
027 * @author <a href="mailto:bs@nuxeo.com">Bogdan Stefanescu</a>
028 */
029public class PropertyIteratorTemplate extends PropertyWrapper implements TemplateModelIterator, AdapterTemplateModel {
030
031    protected final Iterator<Property> iterator;
032
033    public PropertyIteratorTemplate(DocumentObjectWrapper wrapper, Iterator<Property> iterator) {
034        super(wrapper);
035        this.iterator = iterator;
036    }
037
038    @Override
039    @SuppressWarnings("rawtypes")
040    public Object getAdaptedObject(Class hint) {
041        return iterator;
042    }
043
044    @Override
045    public boolean hasNext() throws TemplateModelException {
046        return iterator.hasNext();
047    }
048
049    @Override
050    public TemplateModel next() throws TemplateModelException {
051        return wrap(iterator.next());
052    }
053
054}