org.eclipse.acceleo.parser.AcceleoParserWarnings.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.acceleo.parser.AcceleoParserWarnings.java

Source

/*******************************************************************************
 * Copyright (c) 2008, 2012 Obeo.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     Obeo - initial API and implementation
 *******************************************************************************/
package org.eclipse.acceleo.parser;

import com.google.common.collect.Lists;
import com.google.common.collect.Sets;

import java.util.Iterator;
import java.util.List;
import java.util.Set;

/**
 * All the syntax warnings of the parsing.
 * 
 * @author <a href="mailto:stephane.begaudeau@obeo.fr">Stephane Begaudeau</a>
 * @since 3.1
 */
public class AcceleoParserWarnings implements AcceleoParserMessages {
    /**
     * List of warnings.
     */
    private Set<AcceleoParserWarning> warnings;

    /**
     * Constructor.
     */
    public AcceleoParserWarnings() {
        warnings = Sets.newLinkedHashSet();
    }

    /**
     * The way to add a new warning.
     * 
     * @param message
     *            is the message
     * @param line
     *            is the line of the warning
     * @param posBegin
     *            is the beginning index of the warning
     * @param posEnd
     *            is the ending index of the warning
     */
    public void addWarning(String message, int line, int posBegin, int posEnd) {
        warnings.add(new AcceleoParserWarning(message, line, posBegin, posEnd));
    }

    /**
     * gets the list of warnings.
     * 
     * @return the list of warnings
     */
    public List<AcceleoParserWarning> getList() {
        // We copy the warnings list to prevent concurrent thread access...
        return Lists.newArrayList(warnings);
    }

    /**
     * {@inheritDoc}
     * 
     * @see org.eclipse.acceleo.parser.AcceleoParserMessages#clear()
     */
    public void clear() {
        warnings.clear();
    }

    /**
     * {@inheritDoc}
     * 
     * @see org.eclipse.acceleo.parser.AcceleoParserMessages#getMessage()
     */
    public String getMessage() {
        StringBuffer result = new StringBuffer();
        for (Iterator<AcceleoParserWarning> warningsIt = warnings.iterator(); warningsIt.hasNext();) {
            result.append(warningsIt.next().getMessage());
            if (warningsIt.hasNext()) {
                result.append("\n"); //$NON-NLS-1$
            }
        }
        return result.toString();
    }

    /**
     * {@inheritDoc}
     * 
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        return getMessage();
    }
}