/*     */ package n38sim.cache;
/*     */ 
/*     */ import java.io.File;
/*     */ import java.io.FileInputStream;
/*     */ import java.io.IOException;
/*     */ import java.io.PrintStream;
/*     */ import java.util.HashMap;
/*     */ import java.util.Map;
/*     */ import n38sim.xml.SimN38XmlUtils;
/*     */ import org.apache.commons.lang.StringUtils;
/*     */ import org.w3c.dom.Document;
/*     */ 
/*     */ public class SimN38Cache
/*     */ {
/*     */   private static SimN38Cache instancia;
/*  44 */   private static final Map cacheXLNets = new HashMap();
/*     */ 
/*     */   public static SimN38Cache getInstance()
/*     */   {
/*  34 */     if (instancia == null) {
/*  35 */       instancia = new SimN38Cache();
/*     */     }
/*     */ 
/*  38 */     return instancia;
/*     */   }
/*     */ 
/*     */   public Object get(String tipoRecursoXLNets, String idRecursoXLNets)
/*     */   {
/*  59 */     if ((StringUtils.isNotBlank(tipoRecursoXLNets)) && (StringUtils.isNotBlank(idRecursoXLNets))) {
/*  60 */       Object obj = cacheXLNets.get(tipoRecursoXLNets.concat(idRecursoXLNets));
/*  61 */       return obj;
/*     */     }
/*  63 */     System.out.println("El tipo de recurso y el recurso indicado no pueden ser nulos ");
/*  64 */     throw new SimN38CacheException("El tipo de recurso y el recurso indicado no pueden ser nulos ");
/*     */   }
/*     */ 
/*     */   public void add(String tipoRecursoXLNets, String recursoXLNets, Object objXLNets)
/*     */   {
/*  80 */     if ((StringUtils.isNotBlank(tipoRecursoXLNets)) && (StringUtils.isNotBlank(recursoXLNets)))
/*  81 */       cacheXLNets.put(tipoRecursoXLNets.concat(recursoXLNets), objXLNets);
/*     */   }
/*     */ 
/*     */   public Document getFromDisk(String tipoRecursoXLNets, String recursoXLNets)
/*     */   {
/*  98 */     if ((StringUtils.isNotBlank(tipoRecursoXLNets)) && (StringUtils.isNotBlank(recursoXLNets))) {
/*  99 */       StringBuffer pathBuffer = new StringBuffer();
/*     */ 
/* 101 */       pathBuffer.append(getRutaCacheDisco()).append(tipoRecursoXLNets).append(recursoXLNets).append(".xml");
/*     */ 
/* 103 */       File fichero = new File(pathBuffer.toString());
/*     */ 
/* 105 */       if (fichero.exists())
/*     */       {
/*     */         try
/*     */         {
/* 110 */           FileInputStream fileInputStream = new FileInputStream(fichero);
/*     */ 
/* 112 */           Document xml = SimN38XmlUtils.fncCrearDoc(fileInputStream);
/*     */ 
/* 114 */           if ((xml instanceof Document))
/*     */           {
/*     */             try {
/* 117 */               String stringDoc = SimN38XmlUtils.fncObtenerStringDoc(xml);
/*     */ 
/* 119 */               System.out.println("Contenido del XML recuperado de disco: " + stringDoc);
/*     */             }
/*     */             catch (Exception e) {
/* 122 */               System.out.println("Se ha producido un problema a la hora de escribir el contenido del xml recuperado");
/* 123 */               e.printStackTrace();
/*     */             }
/*     */ 
/* 126 */             return xml;
/*     */           }
/* 128 */           System.out.println("No se ha podido obtener un xml válido desde disco");
/* 129 */           throw new SimN38CacheException("No se ha podido obtener un xml válido desde disco");
/*     */         }
/*     */         catch (IOException e)
/*     */         {
/* 133 */           System.out.println("No se ha podido obtener un xml válido desde disco");
/* 134 */           throw new SimN38CacheException("No se ha podido obtener un xml válido desde disco");
/*     */         }
/*     */       }
/* 137 */       System.out.println("El recurso solicitado no existe en la caché de disco");
/* 138 */       throw new SimN38CacheException("El recurso solicitado no existe en la caché de disco");
/*     */     }
/*     */ 
/* 141 */     System.out.println("El recurso solicitado no es válido");
/* 142 */     throw new SimN38CacheException("El recurso solicitado no es válido");
/*     */   }
/*     */ 
/*     */   public void addToDisk(String tipoRecursoXLNets, String recursoXLNets, Object objXLNets)
/*     */   {
/* 160 */     if ((StringUtils.isNotBlank(tipoRecursoXLNets)) && (StringUtils.isNotBlank(recursoXLNets)))
/*     */     {
/* 162 */       StringBuffer pathBuffer = new StringBuffer();
/*     */ 
/* 164 */       pathBuffer.append(getRutaCacheDisco()).append(tipoRecursoXLNets).append(recursoXLNets).append(".xml");
/*     */ 
/* 166 */       if ((objXLNets instanceof Document)) {
/* 167 */         SimN38XmlUtils.writeXmlFile((Document)objXLNets, pathBuffer.toString());
/*     */       } else {
/* 169 */         System.out.println("No se ha podido almacenar en disco un recurso de XLNets");
/* 170 */         throw new SimN38CacheException("No se ha podido almacenar en disco un recurso de XLNets");
/*     */       }
/*     */     } else {
/* 173 */       System.out.println("No se ha podido almacenar en disco un recurso de XLNets");
/* 174 */       throw new SimN38CacheException("No se ha podido almacenar en disco un recurso de XLNets");
/*     */     }
/*     */   }
/*     */ 
/*     */   private String getRutaCacheDisco()
/*     */   {
/* 185 */     String osName = System.getProperty("os.name");
/*     */ 
/* 187 */     if (StringUtils.contains(osName.toUpperCase(), "WINDOWS")) {
/* 188 */       return "c:/datos/n38/cache/";
/*     */     }
/* 190 */     return "/serapp/datos/n38/cache/";
/*     */   }
/*     */ }

/* Location:           /home/EUROHELP-BILBAO/acarbajo/usr/j2se/xlnets/aplic/n38/lib/weblogic81/n38_eneko.jar
 * Qualified Name:     n38sim.cache.SimN38Cache
 * JD-Core Version:    0.6.0
 */