/tools/droiddoc/src/SampleCode.java
Java | 161 lines | 117 code | 25 blank | 19 comment | 19 complexity | 0d0a3d3d52a1adac15bcfa3e7b241b1f MD5 | raw file
- /*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- import org.clearsilver.HDF;
- import org.clearsilver.CS;
- import java.util.*;
- import java.io.*;
- import java.util.regex.Pattern;
- import java.util.regex.Matcher;
- public class SampleCode {
- String mSource;
- String mDest;
- String mTitle;
- public SampleCode(String source, String dest, String title) {
- mSource = source;
- mTitle = title;
- int len = dest.length();
- if (len > 1 && dest.charAt(len-1) != '/') {
- mDest = dest + '/';
- } else {
- mDest = dest;
- }
- }
- public void write() {
- File f = new File(mSource);
- if (!f.isDirectory()) {
- System.out.println("-samplecode not a directory: " + mSource);
- return;
- }
- writeDirectory(f, mDest);
- }
- public static String convertExtension(String s, String ext) {
- return s.substring(0, s.lastIndexOf('.')) + ext;
- }
- public static String[] IMAGES = { ".png", ".jpg", ".gif" };
- public static String[] TEMPLATED = { ".java", ".xml" };
- public static boolean inList(String s, String[] list) {
- for (String t: list) {
- if (s.endsWith(t)) {
- return true;
- }
- }
- return false;
- }
- public void writeDirectory(File dir, String relative) {
- TreeSet<String> dirs = new TreeSet<String>();
- TreeSet<String> files = new TreeSet<String>();
- String subdir = relative; //.substring(mDest.length());
- for (File f: dir.listFiles()) {
- String name = f.getName();
- if (name.startsWith(".") || name.startsWith("_")) {
- continue;
- }
- if (f.isFile()) {
- String out = relative + name;
- if (inList(out, IMAGES)) {
- // copied directly
- ClearPage.copyFile(f, out);
- writeImagePage(f, convertExtension(out, DroidDoc.htmlExtension), subdir);
- files.add(name);
- }
- if (inList(out, TEMPLATED)) {
- // copied and goes through the template
- ClearPage.copyFile(f, out);
- writePage(f, convertExtension(out, DroidDoc.htmlExtension), subdir);
- files.add(name);
- }
- // else ignored
- }
- else if (f.isDirectory()) {
- writeDirectory(f, relative + name + "/");
- dirs.add(name);
- }
- }
- // write the index page
- int i;
- HDF hdf = DroidDoc.makeHDF();
- hdf.setValue("page.title", dir.getName() + " - " + mTitle);
- hdf.setValue("projectTitle", mTitle);
- hdf.setValue("subdir", subdir);
- i=0;
- for (String d: dirs) {
- hdf.setValue("subdirs." + i + ".name", d);
- i++;
- }
- i=0;
- for (String f: files) {
- hdf.setValue("files." + i + ".name", f);
- hdf.setValue("files." + i + ".href", convertExtension(f, ".html"));
- i++;
- }
- String filename = dir.getPath() + "/_index.html";
- String summary = SampleTagInfo.readFile(new SourcePositionInfo(filename, -1,-1), filename,
- "sample code", true, false, true);
- if (summary == null) {
- summary = "";
- }
- hdf.setValue("summary", summary);
-
- ClearPage.write(hdf, "sampleindex.cs", relative + "/index" + DroidDoc.htmlExtension);
- }
- public void writePage(File f, String out, String subdir) {
- String name = f.getName();
- String filename = f.getPath();
- String data = SampleTagInfo.readFile(new SourcePositionInfo(filename, -1,-1), filename,
- "sample code", true, true, true);
- data = DroidDoc.escape(data);
-
- HDF hdf = DroidDoc.makeHDF();
- hdf.setValue("page.title", name);
- hdf.setValue("subdir", subdir);
- hdf.setValue("realFile", name);
- hdf.setValue("fileContents", data);
- ClearPage.write(hdf, "sample.cs", out);
- }
- public void writeImagePage(File f, String out, String subdir) {
- String name = f.getName();
- String data = "<img src=\"" + name + "\" title=\"" + name + "\" />";
-
- HDF hdf = DroidDoc.makeHDF();
- hdf.setValue("page.title", name);
- hdf.setValue("subdir", subdir);
- hdf.setValue("realFile", name);
- hdf.setValue("fileContents", data);
- ClearPage.write(hdf, "sample.cs", out);
- }
- }