KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > genimen > djeneric > tools > specifier > exceptions > ObjectViewerApplyException


1 /*
2  * Copyright (c) 2001-2005 by Genimen BV (www.genimen.com) All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, is permitted
5  * provided that the following conditions are met:
6  * - Redistributions of source code must retain the above copyright notice, this list of conditions
7  * and the following disclaimer.
8  * - Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * - All advertising materials mentioning features or use of this software must display the
12  * following acknowledgment: "This product includes Djeneric."
13  * - Products derived from this software may not be called "Djeneric" nor may
14  * "Djeneric" appear in their names without prior written permission of Genimen BV.
15  * - Redistributions of any form whatsoever must retain the following acknowledgment: "This
16  * product includes Djeneric."
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL GENIMEN BV, DJENERIC.ORG,
22  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */

30 package com.genimen.djeneric.tools.specifier.exceptions;
31
32 import com.genimen.djeneric.language.Messages;
33 import com.genimen.djeneric.repository.exceptions.DjenericException;
34 import com.genimen.djeneric.repository.exceptions.ObjectNotDefinedException;
35 import com.genimen.djeneric.repository.exceptions.PropertyRequiredException;
36 import com.genimen.djeneric.tools.specifier.interfaces.ObjectViewer;
37
38 public class ObjectViewerApplyException extends DjenericException
39 {
40   private static final long serialVersionUID = 1L;
41   ObjectViewer _viewer;
42   PropertyRequiredException _prx;
43
44   public ObjectViewerApplyException(ObjectViewer viewer, String JavaDoc msg)
45   {
46     super(msg);
47     _viewer = viewer;
48   }
49
50   public ObjectViewerApplyException(ObjectViewer viewer, PropertyRequiredException prx)
51   {
52     _viewer = viewer;
53     _prx = prx;
54
55   }
56
57   public ObjectViewer getViewer()
58   {
59     return _viewer;
60   }
61
62   public String JavaDoc getMessage()
63   {
64     if (_prx == null) return super.getMessage();
65     String JavaDoc[] props = _prx.getMissingProperties();
66
67     String JavaDoc msg = Messages.getString("ObjectViewerApplyException.RequiredPropertyMissing", _viewer.getExtentUsage()
68         .getTitle())
69                  + ": ";
70     int counter = 0;
71     for (int i = 0; i < props.length; i++)
72     {
73       if (counter != 0) msg += ", ";
74       try
75       {
76         msg += _viewer.getPropertyUsageByName(props[i]).getPrompt();
77         counter++;
78       }
79       catch (ObjectNotDefinedException onx)
80       {
81         // A non displayed property. Ignore this one
82
System.err.println(Messages.getString("ObjectViewerApplyException.NonDisplayedPropertyNull", props[i]));
83       }
84     }
85     return msg;
86   }
87
88 }
Popular Tags