package eu.jucy.op; import helpers.GH; import java.util.Map; import uc.IHub; import uc.files.filelist.FileListFile; import uc.files.search.SearchType; import eu.jucy.adlsearch.ADLSearchEntry; import eu.jucy.op.CounterFactory.WorkingCounter; public class OpADLEntry extends ADLSearchEntry { private String counter = ""; private int incrementBy = 0; private boolean breakAfterRaw; private String raw = ""; /** * a black and white list pair * against which this file should be checked * * TODO * empty for no list.. */ private String listName = ""; private String comment = ""; /** * further restriction for matches.. */ private SearchType searchType = SearchType.ANY; //cache variable only active during searching.. @Override public String[] toStringAR() { String[] data = super.toStringAR(); if (data.length != ArrayLength) { throw new IllegalStateException(); } String[] allData = new String[data.length+7]; System.arraycopy(data, 0, allData, 0, data.length); int i = data.length; allData[i+0] = counter; allData[i+1] = ""+incrementBy; allData[i+2] = raw; allData[i+3] = ""+breakAfterRaw; // allData[i+4] = ""+regExp; // allData[i+5] = ""+caseSensitive; allData[i+4] = comment; allData[i+5] = listName; allData[i+6] = searchType.name(); return allData; } public static OpADLEntry fromStringAR(String[] data) { OpADLEntry oae = new OpADLEntry(); oae.setDataFromPrefs(data); int i = ArrayLength; oae.counter = data[i+0]; oae.incrementBy = Integer.parseInt(data[i+1]); oae.raw = data[i+2]; oae.breakAfterRaw = Boolean.parseBoolean(data[i+3]); oae.comment = data[i+4]; oae.listName = data[i+5]; oae.searchType = SearchType.valueOf(data[i+6]); return oae; } @Override public boolean matches(FileListFile file) { boolean matches = searchType.matches(file); if (matches) { matches = super.matches(file); } return matches; } public boolean execute(FileListFile f , Map<String,WorkingCounter> counters , IHub hub/*,IUser usr*/) { if (incrementBy != 0 && !GH.isNullOrEmpty(counter)) { WorkingCounter count = counters.get(counter); if (count != null) { count.addFile(f, incrementBy); } } if (!GH.isNullOrEmpty(raw)) { hub.sendRaw(raw, new OpADLSendContext(hub,f,comment)); if (breakAfterRaw) { return true; } } return false; } public String getCounter() { return counter; } public void setCounter(String counter) { this.counter = counter; } public int getIncrementBy() { return incrementBy; } public void setIncrementBy(int incrementBy) { this.incrementBy = incrementBy; } public String getRaw() { return raw; } public void setRaw(String raw) { this.raw = raw; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } public boolean isBreakAfterRaw() { return breakAfterRaw; } public void setBreakAfterRaw(boolean breakAfterRaw) { this.breakAfterRaw = breakAfterRaw; } public SearchType getFileType() { return searchType; } public void setFileType(SearchType searchType) { this.searchType = searchType; } }