/** * */ package org.commcare.android.references; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import org.apache.http.HttpResponse; import org.commcare.android.database.user.models.User; import org.commcare.android.javarosa.AndroidLogger; import org.commcare.android.logic.GlobalConstants; import org.commcare.android.net.HttpRequestGenerator; import org.commcare.dalvik.application.CommCareApplication; import org.javarosa.core.reference.Reference; import org.javarosa.core.services.Logger; /** * @author ctsims * */ public class JavaHttpReference implements Reference { private String uri; HttpRequestGenerator generator; public JavaHttpReference(String uri, HttpRequestGenerator generator) { this.uri = uri; this.generator = generator; } /* (non-Javadoc) * @see org.javarosa.core.reference.Reference#doesBinaryExist() */ public boolean doesBinaryExist() throws IOException { //For now.... return true; } /* (non-Javadoc) * @see org.javarosa.core.reference.Reference#getOutputStream() */ public OutputStream getOutputStream() throws IOException { throw new IOException("Http references are read only!"); } /* (non-Javadoc) * @see org.javarosa.core.reference.Reference#getStream() */ public InputStream getStream() throws IOException { URL url = new URL(uri); return generator.simpleGet(url); } /* (non-Javadoc) * @see org.javarosa.core.reference.Reference#getURI() */ public String getURI() { return uri; } /* (non-Javadoc) * @see org.javarosa.core.reference.Reference#isReadOnly() */ public boolean isReadOnly() { return true; } /* (non-Javadoc) * @see org.javarosa.core.reference.Reference#remove() */ public void remove() throws IOException { throw new IOException("Http references are read only!"); } public String getLocalURI() { return uri; } public Reference[] probeAlternativeReferences() { return new Reference [0]; } //TODO: This should get changed to be set from the root, don't assume this will //still be here indefinitely public void setHttpRequestor(HttpRequestGenerator generator) { this.generator = generator; } }