/**
* Copyright (c) 2012 Cloudsmith Inc. and other contributors, as listed below.
* 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:
* Cloudsmith
*
*/
package org.cloudsmith.xtext.dommodel.formatter;
import java.util.Set;
import org.cloudsmith.xtext.dommodel.IDomNode;
import org.cloudsmith.xtext.dommodel.formatter.ILayoutManager.ILayoutContext;
import org.cloudsmith.xtext.dommodel.formatter.css.DomCSS;
import org.eclipse.xtext.formatting.ILineSeparatorInformation;
import org.eclipse.xtext.formatting.IIndentationInformation;
import org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic.Acceptor;
import org.eclipse.xtext.util.ITextRegion;
import com.google.common.collect.Sets;
/**
* Abstract implementation of ILayoutContext
*
*/
public abstract class AbstractLayoutContext implements ILayoutContext {
protected Set<IDomNode> consumed = Sets.newHashSet();
@Override
public abstract DomCSS getCSS();
@Override
public abstract Acceptor getErrorAcceptor();
@Override
public abstract IIndentationInformation getIndentationInformation();
@Override
public abstract ILineSeparatorInformation getLineSeparatorInformation();
/**
* This default implementation returns 132
*/
@Override
public int getPreferredMaxWidth() {
return 132;
}
@Override
public abstract ITextRegion getRegionToFormat();
/**
* This default implementation returns 0
*/
@Override
public int getWrapIndentSize() {
return 0;
}
@Override
public boolean isConsumed(IDomNode node) {
return consumed.contains(node);
}
@Override
public abstract boolean isWhitespacePreservation();
@Override
public void markConsumed(IDomNode node) {
consumed.add(node);
}
}