/*
* Copyright 2012 Phil Pratt-Szeliga and other contributors
* http://chirrup.org/
*
* See the file LICENSE for copying permission.
*/
package org.trifort.rootbeer.deadmethods;
import java.util.ArrayList;
import java.util.List;
public class Block {
private List<Segment> m_segments;
private int m_type;
private Method m_method;
private String m_fullString;
private String m_fullStringNoStrings;
public Block(List<Segment> segments, int type){
m_segments = segments;
m_type = type;
if(type == BlockParser.TYPE_METHOD){
StringBuilder builder1 = new StringBuilder();
StringBuilder builder2 = new StringBuilder();
for(int i = 0; i < segments.size(); ++i){
Segment segment = segments.get(i);
builder1.append(segment.getString());
builder1.append(" ");
if(segment.getType() != SegmentParser.TYPE_STRING){
builder2.append(segment.getString());
builder2.append(" ");
}
}
m_fullString = builder1.toString();
m_fullStringNoStrings = builder2.toString();
}
}
public Block(Segment segment, int type){
m_segments = new ArrayList<Segment>();
m_segments.add(segment);
m_type = type;
}
public int getType(){
return m_type;
}
public List<Segment> getSegments(){
return m_segments;
}
public String getFullString(){
return m_fullString;
}
public String getFullStringNoStrings(){
return m_fullStringNoStrings;
}
public boolean isMethod(){
return getType() == BlockParser.TYPE_METHOD;
}
public Method getMethod(){
return m_method;
}
public void setMethod(Method method){
m_method = method;
}
@Override
public String toString(){
StringBuilder ret = new StringBuilder();
if(m_type == BlockParser.TYPE_DECLARE || m_type == BlockParser.TYPE_DEFINE){
for(int i = 0; i < m_segments.size(); ++i){
Segment segment = m_segments.get(i);
ret.append(segment.getString());
ret.append("\n");
}
} else {
for(int i = 0; i < m_segments.size(); ++i){
Segment segment = m_segments.get(i);
Segment nsegment = null;
if(i < m_segments.size() - 1){
nsegment = m_segments.get(i+1);
}
ret.append(segment.getString());
if(segment.getType() != SegmentParser.TYPE_STRING &&
(nsegment != null && nsegment.getType() != SegmentParser.TYPE_STRING)){
ret.append("\n");
}
}
}
return ret.toString();
}
}