//# 0 errors, 236 messages
//#
/*
    //#filemetadata.java:1:1: class: net.sourceforge.pebble.domain.FileMetaData
    //#filemetadata.java:1:1: method: net.sourceforge.pebble.domain.FileMetaData.net.sourceforge.pebble.domain.FileMetaData__static_init
 * Copyright (c) 2003-2006, Simon Brown
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in
 *     the documentation and/or other materials provided with the
 *     distribution.
 *
 *   - Neither the name of Pebble nor the names of its contributors may
 *     be used to endorse or promote products derived from this software
 *     without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */
package net.sourceforge.pebble.domain;

import java.io.File;
import java.util.Date;

/**
 * Represents the meta data associated with a file.
 *
 * @author    Simon Brown
 */
public class FileMetaData {

  public static final String BLOG_FILE = "blogFile";
  public static final String BLOG_IMAGE = "blogImage";
  public static final String THEME_FILE = "themeFile";
  public static final String BLOG_DATA = "blogData";

  private FileManager context;

  private String name;
  private String path;
  private Date lastModified;
  private long size;
  private boolean directory;
  private String type;

  FileMetaData(FileManager context, String absolutePath) {
    //#filemetadata.java:58: method: void net.sourceforge.pebble.domain.FileMetaData.net.sourceforge.pebble.domain.FileMetaData(FileManager, String)
    //#input(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): absolutePath
    //#input(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): context
    //#input(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): this
    //#output(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): this.context
    //#output(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): this.name
    //#output(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): this.path
    //#presumption(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): java.lang.String:lastIndexOf(...)@74 <= 4_294_967_294
    //#post(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): this.context == context
    //#post(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): init'ed(this.context)
    //#post(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): this.name != null
    //#post(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): this.path != null
    //#test_vector(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): absolutePath: Addr_Set{null}, Inverse{null}
    //#test_vector(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): java.lang.String:endsWith(...)@65: {0}, {1}
    //#test_vector(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): java.lang.String:equals(...)@61: {1}, {0}
    //#test_vector(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): java.lang.String:equals(...)@61: {0}, {1}
    //#test_vector(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): java.lang.String:indexOf(...)@69: {-2_147_483_648..-1}, {0..4_294_967_295}
    //#test_vector(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): java.lang.String:length(...)@71: {1..4_294_967_295}, {0}
    //#test_vector(void net.sourceforge.pebble.domain.FileMetaData(FileManager, String)): java.lang.String:startsWith(...)@81: {1}, {0}
    this.context = context;

    if (absolutePath == null || absolutePath.equals("") || absolutePath.equals("/")) {
      this.path="/";
      this.name = "";
    } else {
      if (absolutePath.endsWith("/")) {
        absolutePath = absolutePath.substring(0, absolutePath.length()-1);
      }

      if (absolutePath.indexOf("/") > -1) {
        this.path = absolutePath.substring(0, absolutePath.lastIndexOf("/"));
        if (this.path.length() == 0) {
          this.path = "/";
        }
        this.name = absolutePath.substring(absolutePath.lastIndexOf("/")+1, absolutePath.length());
      } else {
        this.path = absolutePath;
        this.name = "";
      }

      // finally, all paths must start with "/"
      if (!this.path.startsWith("/")) {
        this.path = "/" + this.path;
      }
    }
  }
    //#filemetadata.java:85: end of method: void net.sourceforge.pebble.domain.FileMetaData.net.sourceforge.pebble.domain.FileMetaData(FileManager, String)

  public String getName() {
    return name;
    //#filemetadata.java:88: method: String net.sourceforge.pebble.domain.FileMetaData.getName()
    //#input(String getName()): this
    //#input(String getName()): this.name
    //#output(String getName()): return_value
    //#pre[2] (String getName()): init'ed(this.name)
    //#post(String getName()): return_value == this.name
    //#post(String getName()): init'ed(return_value)
    //#filemetadata.java:88: end of method: String net.sourceforge.pebble.domain.FileMetaData.getName()
  }

  public void setName(String name) {
    this.name = name;
    //#filemetadata.java:92: method: void net.sourceforge.pebble.domain.FileMetaData.setName(String)
    //#input(void setName(String)): name
    //#input(void setName(String)): this
    //#output(void setName(String)): this.name
    //#post(void setName(String)): this.name == name
    //#post(void setName(String)): init'ed(this.name)
  }
    //#filemetadata.java:93: end of method: void net.sourceforge.pebble.domain.FileMetaData.setName(String)

  public Date getLastModified() {
    return lastModified;
    //#filemetadata.java:96: method: Date net.sourceforge.pebble.domain.FileMetaData.getLastModified()
    //#input(Date getLastModified()): this
    //#input(Date getLastModified()): this.lastModified
    //#output(Date getLastModified()): return_value
    //#pre[2] (Date getLastModified()): init'ed(this.lastModified)
    //#post(Date getLastModified()): return_value == this.lastModified
    //#post(Date getLastModified()): init'ed(return_value)
    //#filemetadata.java:96: end of method: Date net.sourceforge.pebble.domain.FileMetaData.getLastModified()
  }

  public void setLastModified(Date lastModified) {
    this.lastModified = lastModified;
    //#filemetadata.java:100: method: void net.sourceforge.pebble.domain.FileMetaData.setLastModified(Date)
    //#input(void setLastModified(Date)): lastModified
    //#input(void setLastModified(Date)): this
    //#output(void setLastModified(Date)): this.lastModified
    //#post(void setLastModified(Date)): this.lastModified == lastModified
    //#post(void setLastModified(Date)): init'ed(this.lastModified)
  }
    //#filemetadata.java:101: end of method: void net.sourceforge.pebble.domain.FileMetaData.setLastModified(Date)

  public boolean isDirectory() {
    return directory;
    //#filemetadata.java:104: method: bool net.sourceforge.pebble.domain.FileMetaData.isDirectory()
    //#input(bool isDirectory()): this
    //#input(bool isDirectory()): this.directory
    //#output(bool isDirectory()): return_value
    //#pre[2] (bool isDirectory()): init'ed(this.directory)
    //#post(bool isDirectory()): return_value == this.directory
    //#post(bool isDirectory()): init'ed(return_value)
    //#filemetadata.java:104: end of method: bool net.sourceforge.pebble.domain.FileMetaData.isDirectory()
  }

  public void setDirectory(boolean directory) {
    this.directory = directory;
    //#filemetadata.java:108: method: void net.sourceforge.pebble.domain.FileMetaData.setDirectory(bool)
    //#input(void setDirectory(bool)): directory
    //#input(void setDirectory(bool)): this
    //#output(void setDirectory(bool)): this.directory
    //#post(void setDirectory(bool)): this.directory == directory
    //#post(void setDirectory(bool)): init'ed(this.directory)
  }
    //#filemetadata.java:109: end of method: void net.sourceforge.pebble.domain.FileMetaData.setDirectory(bool)

  public String getPath() {
    return path;
    //#filemetadata.java:112: method: String net.sourceforge.pebble.domain.FileMetaData.getPath()
    //#input(String getPath()): this
    //#input(String getPath()): this.path
    //#output(String getPath()): return_value
    //#pre[2] (String getPath()): init'ed(this.path)
    //#post(String getPath()): return_value == this.path
    //#post(String getPath()): init'ed(return_value)
    //#filemetadata.java:112: end of method: String net.sourceforge.pebble.domain.FileMetaData.getPath()
  }

  public String getAbsolutePath() {
    if (!path.endsWith("/")) {
    //#filemetadata.java:116: method: String net.sourceforge.pebble.domain.FileMetaData.getAbsolutePath()
    //#input(String getAbsolutePath()): this
    //#input(String getAbsolutePath()): this.name
    //#input(String getAbsolutePath()): this.path
    //#output(String getAbsolutePath()): return_value
    //#pre[2] (String getAbsolutePath()): init'ed(this.name)
    //#pre[3] (String getAbsolutePath()): this.path != null
    //#post(String getAbsolutePath()): return_value != null
    //#test_vector(String getAbsolutePath()): java.lang.String:endsWith(...)@116: {1}, {0}
      return path + "/" + name;
    } else {
      return path + name;
    //#filemetadata.java:119: end of method: String net.sourceforge.pebble.domain.FileMetaData.getAbsolutePath()
    }
  }

  public String getUrl() {
    String url = null;
    //#filemetadata.java:124: method: String net.sourceforge.pebble.domain.FileMetaData.getUrl()
    //#input(String getUrl()): __Descendant_Table[net/sourceforge/pebble/domain/FileMetaData]
    //#input(String getUrl()): __Descendant_Table[others]
    //#input(String getUrl()): __Dispatch_Table.getAbsolutePath()Ljava/lang/String;
    //#input(String getUrl()): __Dispatch_Table.isDirectory()Z
    //#input(String getUrl()): this
    //#input(String getUrl()): this.__Tag
    //#input(String getUrl()): this.directory
    //#input(String getUrl()): this.name
    //#input(String getUrl()): this.path
    //#input(String getUrl()): this.type
    //#output(String getUrl()): return_value
    //#pre[6] (String getUrl()): init'ed(this.type)
    //#pre[2] (String getUrl()): (soft) this.__Tag == net/sourceforge/pebble/domain/FileMetaData
    //#pre[3] (String getUrl()): (soft) init'ed(this.directory)
    //#pre[4] (String getUrl()): (soft) init'ed(this.name)
    //#pre[5] (String getUrl()): (soft) this.path != null
    //#post(String getUrl()): init'ed(return_value)
    //#unanalyzed(String getUrl()): Effects-of-calling:java.lang.String:endsWith
    //#unanalyzed(String getUrl()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(String getUrl()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(String getUrl()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(String getUrl()): Effects-of-calling:java.lang.String:valueOf
    //#test_vector(String getUrl()): this.directory: {0}, {1}
    //#test_vector(String getUrl()): this.type: Addr_Set{null}, Inverse{null}
    //#test_vector(String getUrl()): java.lang.String:endsWith(...)@134: {1}, {0}
    //#test_vector(String getUrl()): java.lang.String:equals(...)@126: {0}, {1}
    //#test_vector(String getUrl()): java.lang.String:equals(...)@128: {0}, {1}
    //#test_vector(String getUrl()): java.lang.String:equals(...)@130: {0}, {1}

    if (type != null && type.equals(FileMetaData.BLOG_IMAGE)) {
      url = "images" + getAbsolutePath();
    } else if (type != null && type.equals(FileMetaData.BLOG_FILE)) {
      url = "files" + getAbsolutePath();
    } else if (type != null && type.equals(FileMetaData.THEME_FILE)) {
      url = "theme" + getAbsolutePath();
    }

    if (url != null && isDirectory() && !url.endsWith("/")) {
      url += "/";
    }

    return url;
    //#filemetadata.java:138: end of method: String net.sourceforge.pebble.domain.FileMetaData.getUrl()
  }

  public boolean isEditable() {
    if (isDirectory()) {
    //#filemetadata.java:142: method: bool net.sourceforge.pebble.domain.FileMetaData.isEditable()
    //#input(bool isEditable()): __Descendant_Table[net/sourceforge/pebble/domain/FileMetaData]
    //#input(bool isEditable()): __Descendant_Table[others]
    //#input(bool isEditable()): __Dispatch_Table.isDirectory()Z
    //#input(bool isEditable()): this
    //#input(bool isEditable()): this.__Tag
    //#input(bool isEditable()): this.directory
    //#input(bool isEditable()): this.name
    //#output(bool isEditable()): return_value
    //#pre[2] (bool isEditable()): this.__Tag == net/sourceforge/pebble/domain/FileMetaData
    //#pre[3] (bool isEditable()): init'ed(this.directory)
    //#pre[4] (bool isEditable()): (soft) this.name != null
    //#post(bool isEditable()): init'ed(return_value)
    //#test_vector(bool isEditable()): this.directory: {0}, {1}
    //#test_vector(bool isEditable()): java.lang.String:endsWith(...)@147: {1}, {0}
    //#test_vector(bool isEditable()): java.lang.String:endsWith(...)@148: {1}, {0}
    //#test_vector(bool isEditable()): java.lang.String:endsWith(...)@149: {1}, {0}
    //#test_vector(bool isEditable()): java.lang.String:endsWith(...)@150: {1}, {0}
    //#test_vector(bool isEditable()): java.lang.String:endsWith(...)@151: {1}, {0}
    //#test_vector(bool isEditable()): java.lang.String:endsWith(...)@152: {1}, {0}
    //#test_vector(bool isEditable()): java.lang.String:endsWith(...)@153: {1}, {0}
    //#test_vector(bool isEditable()): java.lang.String:endsWith(...)@154: {1}, {0}
      return false;
    } else {
      String filename = name.toLowerCase();
      return
          filename.endsWith(".txt") ||
          filename.endsWith(".properties") ||
          filename.endsWith(".jsp") ||
          filename.endsWith(".jspf") ||
          filename.endsWith(".html") ||
          filename.endsWith(".htm") ||
          filename.endsWith(".css") ||
          filename.endsWith(".xml");
    //#filemetadata.java:154: end of method: bool net.sourceforge.pebble.domain.FileMetaData.isEditable()
    }
  }

  public long getSize() {
    return this.size;
    //#filemetadata.java:159: method: long net.sourceforge.pebble.domain.FileMetaData.getSize()
    //#input(long getSize()): this
    //#input(long getSize()): this.size
    //#output(long getSize()): return_value
    //#pre[2] (long getSize()): init'ed(this.size)
    //#post(long getSize()): return_value == this.size
    //#post(long getSize()): init'ed(return_value)
    //#filemetadata.java:159: end of method: long net.sourceforge.pebble.domain.FileMetaData.getSize()
  }

  public double getSizeInKB() {
    return (this.size / 1024.0);
    //#filemetadata.java:163: method: double net.sourceforge.pebble.domain.FileMetaData.getSizeInKB()
    //#input(double getSizeInKB()): this
    //#input(double getSizeInKB()): this.size
    //#output(double getSizeInKB()): return_value
    //#pre[4] (double getSizeInKB()): init'ed(this.size)
    //#post(double getSizeInKB()): return_value == (float) (this.size)/1024
    //#post(double getSizeInKB()): return_value in (-Inf..+Inf)
    //#filemetadata.java:163: end of method: double net.sourceforge.pebble.domain.FileMetaData.getSizeInKB()
  }

  public void setSize(long size) {
    this.size = size;
    //#filemetadata.java:167: method: void net.sourceforge.pebble.domain.FileMetaData.setSize(long)
    //#input(void setSize(long)): size
    //#input(void setSize(long)): this
    //#output(void setSize(long)): this.size
    //#post(void setSize(long)): this.size == size
    //#post(void setSize(long)): init'ed(this.size)
  }
    //#filemetadata.java:168: end of method: void net.sourceforge.pebble.domain.FileMetaData.setSize(long)

  public void setType(String type) {
    this.type = type;
    //#filemetadata.java:171: method: void net.sourceforge.pebble.domain.FileMetaData.setType(String)
    //#input(void setType(String)): this
    //#input(void setType(String)): type
    //#output(void setType(String)): this.type
    //#post(void setType(String)): this.type == type
    //#post(void setType(String)): init'ed(this.type)
  }
    //#filemetadata.java:172: end of method: void net.sourceforge.pebble.domain.FileMetaData.setType(String)

  public File getFile() {
    return context.getFile(getAbsolutePath());
    //#filemetadata.java:175: method: File net.sourceforge.pebble.domain.FileMetaData.getFile()
    //#input(File getFile()): __Descendant_Table[net/sourceforge/pebble/domain/FileMetaData]
    //#input(File getFile()): __Descendant_Table[others]
    //#input(File getFile()): __Dispatch_Table.getAbsolutePath()Ljava/lang/String;
    //#input(File getFile()): net/sourceforge/pebble/domain/FileManager.__Descendant_Table[net/sourceforge/pebble/domain/FileManager]
    //#input(File getFile()): net/sourceforge/pebble/domain/FileManager.__Descendant_Table[others]
    //#input(File getFile()): net/sourceforge/pebble/domain/FileManager.__Dispatch_Table.getFile(Ljava/lang/String;)Ljava/io/File;
    //#input(File getFile()): this
    //#input(File getFile()): this.__Tag
    //#input(File getFile()): this.context
    //#input(File getFile()): this.context.__Tag
    //#input(File getFile()): this.context.root
    //#input(File getFile()): this.name
    //#input(File getFile()): this.path
    //#output(File getFile()): new File(getFile#1*) num objects
    //#output(File getFile()): return_value
    //#new obj(File getFile()): new File(getFile#1*)
    //#pre[2] (File getFile()): this.__Tag == net/sourceforge/pebble/domain/FileMetaData
    //#pre[3] (File getFile()): this.context != null
    //#pre[4] (File getFile()): this.context.__Tag == net/sourceforge/pebble/domain/FileManager
    //#pre[5] (File getFile()): init'ed(this.context.root)
    //#pre[6] (File getFile()): init'ed(this.name)
    //#pre[7] (File getFile()): this.path != null
    //#post(File getFile()): return_value == &new File(getFile#1*)
    //#post(File getFile()): new File(getFile#1*) num objects == 1
    //#unanalyzed(File getFile()): Effects-of-calling:java.lang.String:endsWith
    //#unanalyzed(File getFile()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(File getFile()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(File getFile()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(File getFile()): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(File getFile()): Effects-of-calling:java.lang.String:startsWith
    //#unanalyzed(File getFile()): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(File getFile()): Effects-of-calling:java.io.File
    //#filemetadata.java:175: end of method: File net.sourceforge.pebble.domain.FileMetaData.getFile()
  }

}
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Descendant_Table[net/sourceforge/pebble/domain/FileMetaData]
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getAbsolutePath()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getFile()Ljava/io/File;
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getLastModified()Ljava/util/Date;
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getName()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getPath()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getSize()J
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getSizeInKB()D
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getUrl()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.isDirectory()Z
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.isEditable()Z
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.setDirectory(Z)V
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.setLastModified(Ljava/util/Date;)V
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.setName(Ljava/lang/String;)V
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.setSize(J)V
    //#output(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.setType(Ljava/lang/String;)V
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Descendant_Table[net/sourceforge/pebble/domain/FileMetaData] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getAbsolutePath()Ljava/lang/String; == &getAbsolutePath
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getFile()Ljava/io/File; == &getFile
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getLastModified()Ljava/util/Date; == &getLastModified
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getName()Ljava/lang/String; == &getName
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getPath()Ljava/lang/String; == &getPath
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getSize()J == &getSize
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getSizeInKB()D == &getSizeInKB
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.getUrl()Ljava/lang/String; == &getUrl
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.isDirectory()Z == &isDirectory
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.isEditable()Z == &isEditable
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.setDirectory(Z)V == &setDirectory
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.setLastModified(Ljava/util/Date;)V == &setLastModified
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.setName(Ljava/lang/String;)V == &setName
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.setSize(J)V == &setSize
    //#post(net.sourceforge.pebble.domain.FileMetaData__static_init): __Dispatch_Table.setType(Ljava/lang/String;)V == &setType
    //#filemetadata.java:: end of method: net.sourceforge.pebble.domain.FileMetaData.net.sourceforge.pebble.domain.FileMetaData__static_init
    //#filemetadata.java:: end of class: net.sourceforge.pebble.domain.FileMetaData
