Home | History | Annotate | Download | only in res
      1 package org.robolectric.res;
      2 
      3 import org.robolectric.res.android.ResTable_config;
      4 
      5 public class TypedResource<T> {
      6   private final T data;
      7   private final ResType resType;
      8   private final XmlContext xmlContext;
      9 
     10   public TypedResource(T data, ResType resType, XmlContext xmlContext) {
     11     this.data = data;
     12     this.resType = resType;
     13     this.xmlContext = xmlContext;
     14   }
     15 
     16   public T getData() {
     17     return data;
     18   }
     19 
     20   public ResType getResType() {
     21     return resType;
     22   }
     23 
     24   public ResTable_config getConfig() {
     25     return xmlContext.getConfig();
     26   }
     27 
     28   public XmlContext getXmlContext() {
     29     return xmlContext;
     30   }
     31 
     32   public String asString() {
     33     T data = getData();
     34     return data instanceof String ? (String) data : null;
     35   }
     36 
     37   public boolean isFile() {
     38     return false;
     39   }
     40 
     41   public boolean isReference() {
     42     Object data = getData();
     43     if (data instanceof String) {
     44       String s = (String) data;
     45       return !s.isEmpty() && s.charAt(0) == '@';
     46     }
     47     return false;
     48   }
     49 
     50   @Override public String toString() {
     51     return getClass().getSimpleName() + "{" +
     52         "values=" + data +
     53         ", resType=" + resType +
     54         ", xmlContext=" + xmlContext +
     55         '}';
     56   }
     57 
     58   public boolean isXml() {
     59     return false;
     60   }
     61 }
     62