package org.ts.ddcs.DataTemplate;

import org.ts.ddcs.DataItemTemplate.DataItemTemplate;
import org.ts.ddcs.DataItemTemplate.DataItemTemplateInterface;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

/*
 * created by swp on 2017/8/15
 * 数据模板接口类
 */
public abstract interface DataTemplateInterface {
      public abstract void Init(TemplateSet template);
      public abstract void Stream();
      public abstract String getDataInfo();
      public abstract String GetDatagram();
      public abstract boolean Macth();
      public abstract boolean Macth(byte[] data);
      public abstract String GetFeture();
      public abstract String GetName();
      public abstract String GetViewName();
      public abstract byte[] RtuCode();
      public abstract byte[] CenterStation();
      public abstract byte[] RtuPassword();
      public abstract byte[] FuncCode();
      public abstract byte[] SerialNo();
      public abstract byte[] SendPacketTime();
      public abstract byte[] ReceiveTime();
      public abstract byte[] SiteKind();
      public abstract byte[] CollectTime();
      public abstract byte[] GetContent();
      public abstract byte[] GetEndFlag();
      public abstract HashMap<String,DataItemTemplateInterface> DataItem();
      public abstract LinkedList<DataItemTemplateInterface> MacthDataItem();
      public abstract LinkedList<DataItemTemplateInterface> MacthDataItem(String tableName);
      public abstract LinkedList<DataItemTemplateInterface> matchDataItem(String tableName,String column);
      public abstract LinkedList<DataItemTemplateInterface> matchDataItemByFeature(String feature);
      public abstract boolean ClearCommand();
      public abstract void SupplementInfo(String supplementInfo);
      public abstract String SupplementInfo();
      public abstract List<DataItemTemplateInterface> OutlierData();
      public abstract String GetAgreement();
      public abstract boolean NeedCheckOutlierData();
      public abstract List<Map<String,String>> toTextInfo();
}
