/*
* Copyright (c) 2003, Seth J. Morabito <sethm@loomcom.com> All rights reserved.
*
* 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.
*/
package net.sourceforge.jarbundler;
import java.lang.String;
import java.io.File;
import java.util.List;
import java.util.Arrays;
import java.util.ArrayList;
/**
* Represents an Info.plist DocumentType used for associating a document with
* the application
*
* The Document Types allows you to specify which documents your finished
* product can handle. You should list the application's primary document type
* first because the document controller uses that type by default when the user
* requests a new document.
*
* Name - The name of the document type.
*
* UTI - A list of Uniform Type Identifier (UTI) strings for the document. UTIs
* are strings that uniquely identify abstract types. They can be used to
* describe a file format or data type but can also be used to describe type
* information for other sorts of entities, such as directories, volumes, or
* packages. For more information on UTIs, see the header file UTType.h,
* available as part of LaunchServices.framework in Mac OS X v10.3 and later.
*
*
* Extensions - A list of the filename extensions for this document type. Don't
* include the period in the extension.
*
*
* OS Types - A list of four-letter codes for the document. These codes are
* stored in the document's resources or information property list files.
*
*
* MIME Types - A list of the Multipurpose Internet Mail Extensions (MIME) types
* for the document. MIME types identify content types for Internet
* applications.
*
*
* Icon File - The name of the file that contains the document type's icon.
*
*
* Role - A description of how the application uses the documents of this type.
*
* Editor - The application can display, edit, and save documents of this type.
*
* Viewer - The application can display, but not edit, documents of this type.
*
* Shell - The application provides runtime services for other processes for
* example, a Java applet viewer.
*
* None - The application can neither display nor edit documents of this type
* but instead uses them in some other way. For example, Sketch uses this role
* to declare types it can export but not read.
*
*
* Bundle - Specifies whether the document is a single file or a file bundle,
* that is, a directory that is treated as a single document by certain
* applications, such as the Finder.
*
*
* <documenttype> name="Scan Project" extensions="scansort scanproj"
* ostypes="fold disk fdrp" iconfile="document.icns" mimetypes="text/html
* image/jpeg" role="editor" bundle="true" />
*
*/
public class DocumentType {
private static final List EMPTYLIST = new ArrayList(0);
/** Name. The name of the document type. */
public String name = null;
/**
* Extensions. A list of the filename extensions for this document type.
* Don't include the period in the extension.
*/
public String[] extensions = null;
/**
* OS Types. A list of four-letter codes for the document. These codes are
* stored in the document's resources or information property list files.
*/
public String[] osTypes = null;
/**
* MIME Types. A list of the Multipurpose Internet Mail Extensions (MIME)
* types for the document. MIME types identify content types for Internet
* applications.
*/
public String[] mimeTypes = null;
/**
* UTI. A list of Uniform Type Identifier (UTI) strings for the document.
* UTIs are strings that uniquely identify abstract types. They can be used
* to describe a file format or data type but can also be used to describe
* type information for other sorts of entities, such as directories,
* volumes, or packages. For more information on UTIs, see the header file
* UTType.h, available as part of LaunchServices.framework in Mac OS X v10.3
* and later.
*/
public String[] UTIs = null;
/**
* Icon File. The name of the file that contains the document types icon.
*/
public File iconFile = null;
/**
* Role. A description of how the application uses the documents of this
* type. You can choose from four values:
* <p>
* Editor. The application can display, edit, and save documents of this
* type.
* <p>
* Viewer. The application can display, but not edit, documents of this
* type.
* <p>
* Shell. The application provides runtime services for other processesfor
* example, a Java applet viewer.
* <p>
* None. The application can neither display nor edit documents of this type
* but instead uses them in some other way. For example, Sketch uses this
* role to declare types it can export but not read.
*/
public String role = null;
/**
* Bundle. Specifies whether the document is a single file document or a
* document bundle, that is, a directory that is treated as a single
* document by certain applications, such as the Finder.
*/
public boolean isBundle = false;
// Document type name
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
// Extensions
public void setExtensions(String extensions) {
this.extensions = extensions.split("[\\s,]");
}
public List getExtensions() {
return (extensions == null) ? EMPTYLIST : Arrays.asList(extensions);
}
// OS Types
public void setOSTypes(String osTypes) {
this.osTypes = osTypes.split("[\\s,]");
}
public List getOSTypes() {
return (osTypes == null) ? EMPTYLIST : Arrays.asList(osTypes);
}
// mime-types
public void setMimeTypes(String mimeTypes) {
this.mimeTypes = mimeTypes.split("[\\s,]");
}
public List getMimeTypes() {
return (mimeTypes == null) ? EMPTYLIST : Arrays.asList(this.mimeTypes);
}
// Uniform Type Identifiers
public void setUTIs(String UTIs) {
this.UTIs = UTIs.split("[\\s,]");
}
public List getUTIs() {
return this.UTIs == null ? EMPTYLIST : Arrays.asList(this.UTIs);
}
// Document icon file
public void setIconFile(File iconFile) {
this.iconFile = iconFile;
}
public File getIconFile() {
return iconFile;
}
// Document role
public void setRole(String role) {
this.role = role;
}
public String getRole() {
return role;
}
// Is this document represented as a bundle
public void setBundle(boolean isBundle) {
this.isBundle = isBundle;
}
public boolean isBundle() {
return isBundle;
}
}