package org.nutz.lang.segment;
import java.io.Reader;
import java.util.List;
import java.util.Set;
import org.nutz.lang.util.Context;
/**
* 字符串片段。你可以通过这个接口的函数,为片段中的占位符设值。
*
* @author zozoh(zozohtnt@gmail.com)
*/
public interface Segment {
Segment setAll(Object v);
/**
* 根据对象设置每个插入点的值。
*
* @param obj
* 可以是 POJO 或者 Map
* @return Segment
*/
Segment setBy(Object obj);
Segment set(String key, Object v);
Segment add(String key, Object v);
void clearAll();
Segment born();
Segment clone();
boolean contains(String key);
Set<String> keys();
int keyCount();
boolean hasKey();
List<Object> values();
Segment valueOf(String str);
void parse(Reader reader);
CharSequence render();
CharSequence render(Context context);
Context getContext();
void fillNulls(Context context);
String getOrginalString();
List<SegmentNode> getNodes();
}