package generell; /* * To change this template, choose Tools | Templates * and open the template in the editor. */ import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import org.w3c.dom.*; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; /** * CacheManager.java - beinhaltet alle Funktione zum Cachen eines Suchbegriffs * und seiner Results * * @author Sebastian Enger * @see Serialization * @since 1.1 * @version 1.1 / 2011-08-21 * @typ Class * */ public class CacheManager implements Serializable { /** * */ private static final long serialVersionUID = 1L; /** Cache */ private HashMap> cache; // HashMap> /** Cache Writer/Reader*/ private Serialization ser; /** * Konstruktor * @throws Exception */ public CacheManager() throws Exception { cache = new HashMap>(); ser = new Serialization( Constant.CACHEFILE ); } public void setCache(HashMap> c) { this.cache = c; } public void addCache(HashMap> c) { this.cache.putAll( c ); HashMap> sc = ser.readCache(); sc.putAll(c); ser.writeCache(sc); } public HashMap> getCache() { return ser.readCache(); //return this.cache; } /** * @param searchquery * @param filetypes * = .mp3+.wav+.flac * @return */ synchronized ArrayList getResultContainerFor(String searchquery, int page) { ArrayList res = new ArrayList(); HashMap> cache = getCache(); int from = 0; int maxresults = Constant.MAX_RESULTS_PER_HANDY_SEARCHSCREEN; int mycount = 0; if ( page == 0 ) { from = 0; } else if ( page == 1 ){ from = ( maxresults + page ); } else if ( page > 1 ){ from = ( ( page * maxresults ) + page ); }; for( String name: cache.keySet() ){ if ( name.matches(searchquery.toLowerCase()) || name.contains(searchquery.toLowerCase()) ){ System.out.println("Cache hit for Query: "+searchquery+" in File CacheManager.java getResultContainerFor()\n"); //res.addAll(cache.get(name)); ArrayList m = cache.get(name); for ( int i=0;i<=m.size();i++){ if ( i >= from && mycount <= maxresults){ ResultContainer r = m.get(i); res.add(r); mycount++; } } } } // for( String name: cache.keySet() ){ return res; } synchronized HashMap> fillCacheFromXML(String searchquery, String xmlContent){ HashMap> myCache = new HashMap>(); ArrayList res = new ArrayList(); try { DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); Document doc = docBuilder.parse (xmlContent); // normalize text representation doc.getDocumentElement ().normalize (); System.out.println ("Root element of the doc is " + doc.getDocumentElement().getNodeName()); NodeList listOfPersons = doc.getElementsByTagName("item"); int totalPersons = listOfPersons.getLength(); System.out.println("Total no of people : " + totalPersons); for(int s=0; s Zeichentrick 01 Die Star Sherrifs http://46.38.232.54/comics/01 - Die Star Sherrifs.mp4?start=0&end=600 https://46.38.232.54/comics/01 - Die Star Sherrifs.mp4?start=0&end=600 http://46.38.232.54/comics/01 - Die Star Sherrifs.mp4 https://46.38.232.54/comics/01 - Die Star Sherrifs.mp4 147662407 searchresult * */ Element firstPersonElement = (Element)firstPersonNode; NodeList firstNameList = firstPersonElement.getElementsByTagName("typ"); Element firstNameElement = (Element)firstNameList.item(0); NodeList textFNList = firstNameElement.getChildNodes(); System.out.println("Type : " + ((Node)textFNList.item(0)).getNodeValue().trim()); String typ = ((Node)textFNList.item(0)).getNodeValue().trim(); // todo Paul: name preview securepreview link securelink size category installed r.setTyp(typ); // ResultContainer Typ aus xml auslesen und in resultcontainer speichern // am ende der IF Anweisung res.add(r); }//end of if clause }// for(int s=0; s