001 /* 002 * Jpkg - Java library and tools for operating system package creation. 003 * 004 * Copyright (c) 2007 Three Rings Design, Inc. 005 * All rights reserved. 006 * 007 * Redistribution and use in source and binary forms, with or without 008 * modification, are permitted provided that the following conditions 009 * are met: 010 * 1. Redistributions of source code must retain the above copyright 011 * notice, this list of conditions and the following disclaimer. 012 * 2. Redistributions in binary form must reproduce the above copyright 013 * notice, this list of conditions and the following disclaimer in the 014 * documentation and/or other materials provided with the distribution. 015 * 3. Neither the name of the copyright owner nor the names of contributors 016 * may be used to endorse or promote products derived from this software 017 * without specific prior written permission. 018 * 019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 021 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 023 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 024 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 025 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 026 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 027 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 028 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 029 * POSSIBILITY OF SUCH DAMAGE. 030 */ 031 package com.threerings.jpkg.debian; 032 033 /** 034 * Holds and parses the Debian package architecture. 035 * @see <a href="http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Architecture">Debian Policy Manual</a> 036 */ 037 public class PackageArchitecture 038 implements ControlFileData 039 { 040 /** 041 * Construct a new PackageArchitecture using an architecture defined in the DebianArchitecture 042 * enum. 043 */ 044 public PackageArchitecture (DebianArchitectures architecture) 045 { 046 _architecture = architecture.getName(); 047 } 048 049 /** 050 * Construct a new PackageArchitecture object with an arbitrary string representing the 051 * architecture this package is to be installed on. 052 * NOTE: Users of this class are strongly encouraged to use the constructor for this class 053 * which uses the DebianArchitecture enum which was generated from the dpkg tools and should 054 * contain an exhaustive list of valid Debian architectures. 055 */ 056 public PackageArchitecture (String architecture) 057 { 058 _architecture = architecture; 059 } 060 061 // from ControlFileData 062 public String getField () 063 { 064 return "Architecture"; 065 } 066 067 // from ControlFileData 068 public String getFieldValue () 069 { 070 return _architecture; 071 } 072 073 /** The package architecture. */ 074 private final String _architecture; 075 }