package com.cedricblondeau.webpage2html.transformers; import com.cedricblondeau.webpage2html.Configuration; import com.cedricblondeau.webpage2html.http.HttpResourceFactory; import com.cedricblondeau.webpage2html.http.resource.HttpResource; import com.cedricblondeau.webpage2html.transformers.assets.BaseTransformer; import com.cedricblondeau.webpage2html.transformers.assets.CssTransformer; import com.cedricblondeau.webpage2html.transformers.assets.Transformer; import java.net.URL; public final class TransformerFactory { private Configuration configuration; public TransformerFactory(Configuration configuration) { this.configuration = configuration; } /** * @param url * @param baseURL * @return ITransformer */ public Transformer get(String url, URL baseURL) { HttpResource httpResource = new HttpResourceFactory(configuration).get(url, baseURL); return this.get(httpResource); } /** * @param httpResource * @return Transformer */ public Transformer get(HttpResource httpResource) { try { switch (httpResource.getMediaType()) { case "text/css": return new CssTransformer(httpResource.getContent(), httpResource.getUrl(), configuration); default: BaseTransformer baseTransformer = new BaseTransformer(httpResource.getMediaType()); baseTransformer.setData(httpResource.getData()); return baseTransformer; } } catch (NullPointerException e) { return null; } } }