it might be a stupid question, but I'm getting confused here. I've the following situation:
Main.java
public class Main {
public static void main (String args[]){
GenericTag[] arr = new GenericTag[2];
arr[0] = new Authentication("", "", "", "");
arr[1] = new Document("", "", "", "");
byte[] foo= Base64.decodeBase64(XmlBuilder.generate(arr));
System.out.println(new String(foo));
}
XmlBuilder.java
public final class XmlBuilder {
private static final String OPEN_TAG = "";
private static final String CLOSE_TAG = "";
public static byte[] generate(GenericTag[] tags){
String xml = OPEN_TAG;
for(int i=0; i<tags.length; i++){
xml += tags[i].xml;
}
xml += CLOSE_TAG;
return Base64.encodeBase64(xml.getBytes());
}
public interface GenericTag{
public String getXml();
}
public class Authentication implements GenericTag{
private static final String OPEN_TAG = "<authentication>";
private static final String CLOSE_TAG = "</autentication>";
//some tags
public Authentication (/*some parameters*/){
xml = OPEN_TAG;
//xml building
xml += CLOSE_TAG;
}
@Override
public String getXml() {
return xml;
}
}
public class Document implements GenericTag{
private static final String OPEN_TAG = "<document>";
private static final String CLOSE_TAG = "</document>";
//some tags
public String xml;
public Documento (/*some params*/){
xml = OPEN_TAG;
//xml building
xml += CLOSE_TAG;
}
@Override
public String getXml() {
return xml;
}
}
}
I can't get it to work. The compiler says that both Authentication and Document cannot be resolved to a type. If I explicitly state new XmlBuilder.Authentication
it says
No enclosing instance of type XmlBuilder is accessible. Must qualify the allocation with an enclosing instance of type XmlBuilder (e.g. x.new A() where x is an instance of XmlBuilder).
What am I doing wrong here?