home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / VCAFE.3.0A / Main.bin / SyntheticPropertyDescriptor.java < prev    next >
Text File  |  1998-10-25  |  3KB  |  87 lines

  1. /*
  2.  * Copyright 1998 Symantec Corporation, All Rights Reserved.
  3.  */
  4.  
  5. package com.symantec.itools.vcafe.openapi.beans;
  6.  
  7. import java.beans.FeatureDescriptor;
  8. import java.beans.BeanDescriptor;
  9.  
  10. public class SyntheticPropertyDescriptor
  11.     extends FeatureDescriptor
  12. {
  13.     public SyntheticPropertyDescriptor
  14.             (String     propertyName,
  15.              Class      propertyClass)
  16.     {
  17.         setName(propertyName);
  18.         m_SyntheticPropertyClass = propertyClass;
  19.     }
  20.     
  21.     public Class getSyntheticPropertyClass()
  22.     {
  23.         return m_SyntheticPropertyClass;
  24.     }
  25.     
  26.     public String getSyntheticPropertyClassName()
  27.     {
  28.         return m_SyntheticPropertyClass.getName();
  29.     }
  30.     
  31.     //
  32.     // Helper Methods
  33.     //
  34.     
  35.     public static final String SYNTHETIC_PROPERTY_DESCRIPTOR_ATTRIBUTE = "syntheticPropertyDescriptors";
  36.     
  37.     public final static void addSyntheticPropertyDescriptor
  38.             (BeanDescriptor                 beanDescriptor,
  39.              SyntheticPropertyDescriptor    syntheticPD)
  40.     {
  41.         try
  42.         {
  43.             SyntheticPropertyDescriptor[] synthPDs =
  44.                 (SyntheticPropertyDescriptor[])beanDescriptor.getValue(SYNTHETIC_PROPERTY_DESCRIPTOR_ATTRIBUTE);
  45.             
  46.             if (synthPDs == null)
  47.             {
  48.                 synthPDs = new SyntheticPropertyDescriptor[1];
  49.                 synthPDs[0] = syntheticPD;
  50.                 beanDescriptor.setValue(SYNTHETIC_PROPERTY_DESCRIPTOR_ATTRIBUTE,synthPDs);
  51.                 return;
  52.             }
  53.             
  54.             SyntheticPropertyDescriptor[] newSynthPDs = new SyntheticPropertyDescriptor[synthPDs.length + 1];
  55.             System.arraycopy(synthPDs,0,newSynthPDs,0,synthPDs.length);
  56.             newSynthPDs[synthPDs.length] = syntheticPD;
  57.             
  58.             beanDescriptor.setValue(SYNTHETIC_PROPERTY_DESCRIPTOR_ATTRIBUTE,newSynthPDs);
  59.         }
  60.         catch(ClassCastException e)
  61.         {
  62.         }
  63.     }
  64.     
  65.     public final static SyntheticPropertyDescriptor[] getSyntheticPropertyDescriptors(BeanDescriptor beanDescriptor)
  66.     {
  67.         try
  68.         {
  69.             SyntheticPropertyDescriptor[] synthPDs =
  70.                 (SyntheticPropertyDescriptor[])beanDescriptor.getValue(SYNTHETIC_PROPERTY_DESCRIPTOR_ATTRIBUTE);
  71.             
  72.             return synthPDs;
  73.         }
  74.         catch(ClassCastException e)
  75.         {
  76.         }
  77.         
  78.         return null;
  79.     }
  80.  
  81.     //
  82.     // Implementation
  83.     //
  84.     
  85.     protected Class m_SyntheticPropertyClass;
  86. }
  87.