Home | History | Annotate | Download | only in impl
      1 // =================================================================================================
      2 // ADOBE SYSTEMS INCORPORATED
      3 // Copyright 2006 Adobe Systems Incorporated
      4 // All Rights Reserved
      5 //
      6 // NOTICE:  Adobe permits you to use, modify, and distribute this file in accordance with the terms
      7 // of the Adobe license agreement accompanying it.
      8 // =================================================================================================
      9 
     10 package com.adobe.xmp.impl;
     11 
     12 import com.adobe.xmp.XMPConst;
     13 import com.adobe.xmp.XMPError;
     14 import com.adobe.xmp.XMPException;
     15 import com.adobe.xmp.XMPMeta;
     16 
     17 
     18 /**
     19  * @since   11.08.2006
     20  */
     21 class ParameterAsserts implements XMPConst
     22 {
     23 	/**
     24 	 * private constructor
     25 	 */
     26 	private ParameterAsserts()
     27 	{
     28 		// EMPTY
     29 	}
     30 
     31 
     32 	/**
     33 	 * Asserts that an array name is set.
     34 	 * @param arrayName an array name
     35 	 * @throws XMPException Array name is null or empty
     36 	 */
     37 	public static void assertArrayName(String arrayName) throws XMPException
     38 	{
     39 		if (arrayName == null  ||  arrayName.length() == 0)
     40 		{
     41 			throw new XMPException("Empty array name", XMPError.BADPARAM);
     42 		}
     43 	}
     44 
     45 
     46 	/**
     47 	 * Asserts that a property name is set.
     48 	 * @param propName a property name or path
     49 	 * @throws XMPException Property name is null or empty
     50 	 */
     51 	public static void assertPropName(String propName) throws XMPException
     52 	{
     53 		if (propName == null  ||  propName.length() == 0)
     54 		{
     55 			throw new XMPException("Empty property name", XMPError.BADPARAM);
     56 		}
     57 	}
     58 
     59 
     60 	/**
     61 	 * Asserts that a schema namespace is set.
     62 	 * @param schemaNS a schema namespace
     63 	 * @throws XMPException Schema is null or empty
     64 	 */
     65 	public static void assertSchemaNS(String schemaNS) throws XMPException
     66 	{
     67 		if (schemaNS == null  ||  schemaNS.length() == 0)
     68 		{
     69 			throw new XMPException("Empty schema namespace URI", XMPError.BADPARAM);
     70 		}
     71 	}
     72 
     73 
     74 	/**
     75 	 * Asserts that a prefix is set.
     76 	 * @param prefix a prefix
     77 	 * @throws XMPException Prefix is null or empty
     78 	 */
     79 	public static void assertPrefix(String prefix) throws XMPException
     80 	{
     81 		if (prefix == null  ||  prefix.length() == 0)
     82 		{
     83 			throw new XMPException("Empty prefix", XMPError.BADPARAM);
     84 		}
     85 	}
     86 
     87 
     88 	/**
     89 	 * Asserts that a specific language is set.
     90 	 * @param specificLang a specific lang
     91 	 * @throws XMPException Specific language is null or empty
     92 	 */
     93 	public static void assertSpecificLang(String specificLang) throws XMPException
     94 	{
     95 		if (specificLang == null  ||  specificLang.length() == 0)
     96 		{
     97 			throw new XMPException("Empty specific language", XMPError.BADPARAM);
     98 		}
     99 	}
    100 
    101 
    102 	/**
    103 	 * Asserts that a struct name is set.
    104 	 * @param structName a struct name
    105 	 * @throws XMPException Struct name is null or empty
    106 	 */
    107 	public static void assertStructName(String structName) throws XMPException
    108 	{
    109 		if (structName == null  ||  structName.length() == 0)
    110 		{
    111 			throw new XMPException("Empty array name", XMPError.BADPARAM);
    112 		}
    113 	}
    114 
    115 
    116 	/**
    117 	 * Asserts that any string parameter is set.
    118 	 * @param param any string parameter
    119 	 * @throws XMPException Thrown if the parameter is null or has length 0.
    120 	 */
    121 	public static void assertNotNull(Object param) throws XMPException
    122 	{
    123 		if (param == null)
    124 		{
    125 			throw new XMPException("Parameter must not be null", XMPError.BADPARAM);
    126 		}
    127 		else if ((param instanceof String)  &&  ((String) param).length() == 0)
    128 		{
    129 			throw new XMPException("Parameter must not be null or empty", XMPError.BADPARAM);
    130 		}
    131 	}
    132 
    133 
    134 	/**
    135 	 * Asserts that the xmp object is of this implemention
    136 	 * ({@link XMPMetaImpl}).
    137 	 * @param xmp the XMP object
    138 	 * @throws XMPException A wrong implentaion is used.
    139 	 */
    140 	public static void assertImplementation(XMPMeta xmp) throws XMPException
    141 	{
    142 		if (xmp == null)
    143 		{
    144 			throw new XMPException("Parameter must not be null",
    145 					XMPError.BADPARAM);
    146 		}
    147 		else if (!(xmp instanceof XMPMetaImpl))
    148 		{
    149 			throw new XMPException("The XMPMeta-object is not compatible with this implementation",
    150 					XMPError.BADPARAM);
    151 		}
    152 	}
    153 }