JavaTM Platform
Standard Ed. 6

javax.management
클래스 ImmutableDescriptor

java.lang.Object 
  상위를 확장 javax.management.ImmutableDescriptor
모든 구현된 인터페이스:
Serializable , Cloneable , Descriptor


public class ImmutableDescriptor
extends Object
implements Descriptor

불변 기술자

도입된 버젼:
1.6
관련 항목:
직렬화 된 형식

필드의 개요
static ImmutableDescriptor EMPTY_DESCRIPTOR
          빈 상태(empty)의 기술자
 
생성자 의 개요
ImmutableDescriptor (Map <String ,? > fields)
          필드의 이름과 값이 지정한 Map 의 키와 값인 기술자를 구축합니다.
ImmutableDescriptor (String ... fields)
          지정된 필드를 포함한 기술자를 구축합니다.
ImmutableDescriptor (String [] fieldNames, Object [] fieldValues)
          지정된 필드 및 값을 포함한 기술자를 구축합니다.
 
메소드의 개요
 Descriptor clone ()
          이 기술자와 등가인 기술자를 돌려줍니다.
 boolean equals (Object  o)
          이 기술자와 지정된 객체를 비교합니다.
 String [] getFieldNames ()
          기술자내의 모든 필드명을 돌려줍니다.
 String [] getFields ()
          이 기술자에게 포함되는 모든 필드를 단일의 캐릭터 라인 배열로서 돌려줍니다.
 Object getFieldValue (String  fieldName)
          특정의 필드명의 값을 돌려줍니다.
 Object [] getFieldValues (String ... fieldNames)
          기술자내의 모든 필드의 값을 Object 의 배열로서 돌려줍니다.
 int hashCode ()
          이 기술자의 해시 코드값를 돌려줍니다.
 boolean isValid ()
          모든 필드에 이름이 부여되고 있어 값이 유효한 경우, true 를 돌려줍니다.
 void removeField (String  fieldName)
          기술자로부터 필드를 삭제합니다.
 void setField (String  fieldName, Object  fieldValue)
          이 클래스는 불변이기 (위해)때문에, 이 조작은 지원되고 있지 않습니다.
 void setFields (String [] fieldNames, Object [] fieldValues)
          이 클래스는 불변이기 (위해)때문에, 이 조작은 지원되고 있지 않습니다.
 String toString ()
          객체의 캐릭터 라인 표현을 돌려줍니다.
static ImmutableDescriptor union (Descriptor ... descriptors)
          내용이 지정한 기술자의 화집합인 ImmutableDescriptor 를 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
finalize , getClass , notify , notifyAll , wait , wait , wait
 

필드의 상세

EMPTY_DESCRIPTOR

public static final ImmutableDescriptor  EMPTY_DESCRIPTOR
빈 상태(empty)의 기술자

생성자 의 상세

ImmutableDescriptor

public ImmutableDescriptor(String [] fieldNames,
                           Object [] fieldValues)
지정된 필드 및 값을 포함한 기술자를 구축합니다.

예외:
IllegalArgumentException - 몇개의 배열이 null 의 경우, 배열의 사이즈가 다른 경우, 필드명이 null 또는 빈 상태(empty)의 경우, 또는 동일한 필드명이 여러 차례 출현하는 경우

ImmutableDescriptor

public ImmutableDescriptor(String ... fields)
지정된 필드를 포함한 기술자를 구축합니다. 각 String 는,fieldName=fieldValue 의 형식으로 할 필요가 있습니다. 필드명은, 최초의 = 문자까지입니다. 예를 들어, String 가 a=b=c 의 경우, 필드명은 a 로, 값은 b=c 입니다.

예외:
IllegalArgumentException - 파라미터가 null 의 경우, 필드명이 빈 상태(empty)의 경우, 동일한 필드명이 여러 차례 출현하는 경우, 또는 캐릭터 라인중 한쪽이 = 문자를 포함하지 않은 경우.

ImmutableDescriptor

public ImmutableDescriptor(Map <String ,? > fields)

필드의 이름과 값이 지정한 Map 의 키와 값인 기술자를 구축합니다.

예외:
IllegalArgumentException - 파라미터가 null 의 경우, 필드명이 null 또는 빈 상태(empty)의 경우, 또는 동일한 필드명이 여러 차례 출현하는 경우 (필드명의 대문자와 소문자가 구별되지 않는 경우에 발생하는 일이 있다)
메소드의 상세

union

public static ImmutableDescriptor  union(Descriptor ... descriptors)

내용이 지정한 기술자의 화집합인 ImmutableDescriptor 를 돌려줍니다. 결과에는, 각 기술자내에 출현하는 전필드가, 메소드 호출 시점에서의 그 필드의 값과 함께 표시됩니다. 그 후, 기술자를 변경해도, 여기서 반환되는 ImmutableDescriptor 는 영향을 받지 않습니다.

무엇보다 단순한 케이스에서는, 기술자는 1 개만으로, 반환되는 ImmutableDescriptor 는 이 메소드의 호출시의 필드의 카피가 됩니다.

 Descriptor d = something();
 ImmutableDescriptor copy = ImmutableDescriptor.union(d);
 

파라미터:
descriptors - 결합하는 기술자. 기술자중 한쪽이 null 인 경우, 그것은 스킵 된다
반환값:
지정한 기술자의 화집합이다 ImmutableDescriptor. 입력 기술자중 한쪽이 필수 필드를 모두 포함한 ImmutableDescriptor 인 경우, 반환되는 객체는 그 기술자와 같게 될 가능성이 있다.
예외:
IllegalArgumentException - 2 개의 기술자에게 동일한 필드명이 존재하지만, 각각 관련지을 수 있었던 값이 다른 경우. 프리미티브(primitive) 배열치는, 요소 및 형태가 같은 경우에, 동일이라고 보여진다. 객체 배열치는,Arrays.deepEquals(Object[], Object[]) 가 true 를 돌려주는 경우에, 동일이라고 보여진다

getFieldValue

public final Object  getFieldValue(String  fieldName)
인터페이스 Descriptor 의 기술:
특정의 필드명의 값을 돌려줍니다. 그 이름의 값이 존재하지 않는 경우는 null 를 돌려줍니다.

정의:
인터페이스 Descriptor 내의 getFieldValue
파라미터:
fieldName - 필드명.
반환값:
대응하는 값. 그 필드가 존재하지 않는 경우는 null

getFields

public final String [] getFields()
인터페이스 Descriptor 의 기술:
이 기술자에게 포함되는 모든 필드를 단일의 캐릭터 라인 배열로서 돌려줍니다.

정의:
인터페이스 Descriptor 내의 getFields
반환값:
fieldName=fieldValue 의 형식의 필드의 캐릭터 라인 배열
필드의 값이 String 가 아닌 경우, toString() 메소드가 불려 가 반환값이 괄호로 둘러싸여 반환되는 배열내의 필드의 값으로 해서 사용된다. 필드의 값이 null 의 경우, 반환되는 배열내의 필드의 값은 비운다. 기술자가 빈 상태(empty)의 경우, 빈 상태(empty)의 배열이 반환되는
관련 항목:
Descriptor.setFields(java.lang.String[], java.lang.Object[])

getFieldValues

public final Object [] getFieldValues(String ... fieldNames)
인터페이스 Descriptor 의 기술:
기술자내의 모든 필드의 값을 Object 의 배열로서 돌려줍니다. 반환되는 값의 차례는,fieldNames String 배열 파라미터의 경우와 같게 됩니다.

정의:
인터페이스 Descriptor 내의 getFieldValues
파라미터:
fieldNames - 치가 반환되는 필드의 이름으로 구성된다 캐릭터 라인 배열. 배열이 빈 상태(empty)의 경우, 빈 상태(empty)의 배열이 반환된다. 배열이 null 의 경우, 파라미터가 Descriptor.getFieldNames() 에 의해 반환된 배열인것 같이, 모든 값이 반환된다. 배열내의 필드명이 존재하지 않는 경우 (필드명이 null 또는 빈 상태(empty)의 캐릭터 라인인 경우를 포함한다), 반환되는 대응하는 배열 요소에 대해서 null 가 반환된다
반환값:
필드치로부터 완성되는 객체 배열. fieldNames 의 리스트가 빈 상태(empty)의 경우, 빈 상태(empty)의 배열이 반환된다

getFieldNames

public final String [] getFieldNames()
인터페이스 Descriptor 의 기술:
기술자내의 모든 필드명을 돌려줍니다.

정의:
인터페이스 Descriptor 내의 getFieldNames
반환값:
필드명의 캐릭터 라인 배열. 기술자가 빈 상태(empty)의 경우 빈 상태(empty)의 배열이 반환된다

equals

public boolean equals(Object  o)
이 기술자와 지정된 객체를 비교합니다. 지정된 객체도 Descriptor 이며, 2 개의 기술자의 필드명이 동일해 (대문자와 소문자가 다를 가능성이 있다), 관련지을 수 있었던 값이 같은 경우, 오제크트는 등가입니다. 다음의 조건을 채우는 경우, 2 개의 Descriptor 내의 필드의 각각의 값이 동일해집니다.

정의:
인터페이스 Descriptor 내의 equals
오버라이드(override):
클래스 Object 내의 equals
파라미터:
o - 비교 대상의 객체
반환값:
객체가 동일한 경우는 true, 그렇지 않은 경우는 false
관련 항목:
Object.hashCode() , Hashtable

hashCode

public int hashCode()

이 기술자의 해시 코드값를 돌려줍니다. 해시 코드는, 기술자내의 각 필드의 해시 코드의 합계가 됩니다. 이름이 n 로, 값이 v 의 필드의 해시 코드는,n.toLowerCase(). hashCode() ^ h 가 됩니다. 여기서,hv 의 해시 코드입니다. 다음에 계산방법을 나타냅니다.

정의:
인터페이스 Descriptor 내의 hashCode
오버라이드(override):
클래스 Object 내의 hashCode
반환값:
이 객체의 해시 코드값
관련 항목:
Object.equals(java.lang.Object) , Hashtable

toString

public String  toString()
클래스 Object 의 기술:
객체의 캐릭터 라인 표현을 돌려줍니다. 일반적으로,toString 메소드는 이 객체를 「텍스트로 표현한다」캐릭터 라인을 돌려줍니다. 이 결과는, 인간이 읽을 수 있는 간결하고 유익한 정보여야 합니다. 모든 서브 클래스에서, 이 메소드를 오버라이드(override) 하는 것을 추천합니다.  

Object 클래스의 toString 메소드는, 객체의 파생원의 클래스명, @ 부호 (@), 및 객체의 해시 코드의 부호 없음 16 진표현으로부터 구성되는 캐릭터 라인을 돌려줍니다. 즉, 이 메소드는 다음의 값과 동일한 캐릭터 라인을 돌려줍니다.

 getClass(). getName() + '@' + Integer.toHexString(hashCode())
 

오버라이드(override):
클래스 Object 내의 toString
반환값:
이 객체의 캐릭터 라인 표현

isValid

public boolean isValid()
모든 필드에 이름이 부여되고 있어 값이 유효한 경우, true 를 돌려줍니다. 이 메소드는 항상 true 를 돌려줍니다만, 필요한 경우, 서브 클래스가 이것을 오버라이드(override) 해 false 를 돌려주는 것이 가능합니다.

정의:
인터페이스 Descriptor 내의 isValid
반환값:
치가 유효한 경우는 true
예외:
RuntimeOperationsException - 타당성 검사에 실패했을 경우. 기술자가 무효의 경우, 이 메소드는 false 를 돌려주지만, 타당성을 판단하려고 실패하는 곳의 예외를 throw 한다

clone

public Descriptor  clone()

이 기술자와 등가인 기술자를 돌려줍니다. 반환되는 기술자를 변경해도 이 기술자는 영향을 받지 않고, 이 기술자를 변경해도 반환되는 기술자는 영향을 받지 않습니다.

이 메소드는, 불려 가는 객체를 돌려줍니다. 규약을 채우는 경우는, 서브 클래스에서 이것을 오버라이드(override) 해 다른 객체를 돌려줄 수가 있습니다.

정의:
인터페이스 Descriptor 내의 clone
오버라이드(override):
클래스 Object 내의 clone
반환값:
이 인스턴스의 복제
예외:
RuntimeOperationsException - 필드명 또는 필드치의 값이 부정한 경우. 하등의 이유로써 기술자의 작성에 실패했을 경우, 이 예외가 throw 되는
관련 항목:
Cloneable

setFields

public final void setFields(String [] fieldNames,
                            Object [] fieldValues)
                     throws RuntimeOperationsException 
이 클래스는 불변이기 (위해)때문에, 이 조작은 지원되고 있지 않습니다. 이 호출에 의해 같은 내용의 가변 기술자가 변경되는 경우,UnsupportedOperationException 를 랩 하는 RuntimeOperationsException 가 throw 됩니다. 그 이외의 경우, 가변 기술자의 경우와 같은 동작이 됩니다. 즉, 부정한 파라미터를 위해서(때문에) 예외가 throw 되는지, 아무것도 실행되지 않는가의 어딘가에 됩니다.

정의:
인터페이스 Descriptor 내의 setFields
파라미터:
fieldNames - 필드명의 캐릭터 라인 배열. 배열 및 배열 요소는, null 에는 할 수 없는
fieldValues - 대응하는 필드치로부터 완성되는 객체 배열. 배열은 null 이외. 배열 요소는 null 의 경우도 있다
예외:
RuntimeOperationsException - 하등의 이유로써 변경이 실패했을 경우. fieldNames 또는 fieldValues 가 null 의 경우, 배열의 길이가 다른 경우, 또는, 그러한 어느 쪽인가에 부정한 값이 존재하는 경우에, 랩 된 예외는 IllegalArgumentException 가 된다. 기술자가 불변으로, 호출에 의해 그 내용이 변경되는 경우, 랩 된 예외는 UnsupportedOperationException 가 된다.
관련 항목:
Descriptor.getFields()

setField

public final void setField(String  fieldName,
                           Object  fieldValue)
                    throws RuntimeOperationsException 
이 클래스는 불변이기 (위해)때문에, 이 조작은 지원되고 있지 않습니다. 이 호출에 의해 같은 내용의 가변 기술자가 변경되는 경우,UnsupportedOperationException 를 랩 하는 RuntimeOperationsException 가 throw 됩니다. 그 이외의 경우, 가변 기술자의 경우와 같은 동작이 됩니다. 즉, 부정한 파라미터를 위해서(때문에) 예외가 throw 되는지, 아무것도 실행되지 않는가의 어딘가에 됩니다.

정의:
인터페이스 Descriptor 내의 setField
파라미터:
fieldName - 설정되는 필드명. null 나 공문자열은 사용할 수 없는
fieldValue - 필드명으로서 설정된다 치. null 가 필드에서 유효한 값이면, null 도 사용할 수 있다
예외:
RuntimeOperationsException - 필드명 또는 필드치가 부정한 경우 (랩 된 예외는 IllegalArgumentException ), 또는 기술자가 불변인 경우 (랩 된 예외는 UnsupportedOperationException ).

removeField

public final void removeField(String  fieldName)
기술자로부터 필드를 삭제합니다.

정의:
인터페이스 Descriptor 내의 removeField
파라미터:
fieldName - 삭제되는 필드의 캐릭터 라인명. 필드명이 부정한가, 필드가 발견되지 않는 경우, 예외는 throw 되지 않는다
예외:
RuntimeOperationsException - 지정한 이름의 필드가 존재해, 기술자가 불변의 경우. 랩 된 예외는, UnsupportedOperationException 가 된다

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.