Package com.sun.jna.platform.win32.COM
Class IComEnumVariantIterator
- java.lang.Object
-
- com.sun.jna.platform.win32.COM.IComEnumVariantIterator
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,java.lang.Iterable<Variant.VARIANT>
,java.util.Iterator<Variant.VARIANT>
public class IComEnumVariantIterator extends java.lang.Object implements java.lang.Iterable<Variant.VARIANT>, java.util.Iterator<Variant.VARIANT>, java.io.Closeable
Wrapper for an EnumVariant Iteration. The usecase is a for-loop in the style:// Aquire an IDispatch, that has a new NewEnum Property (DISPID_NEWENUM) for(VARIANT v: IComEnumVariantIterator.wrap(dispatch)) { // Work with the acquired Variant // ... // Finally free it OleAuto.INSTANCE.VariantClear(v); }
The
IComEnumVariantIterator
iterator closes the enumeration it wraps after the enumeration is exhausted or when the iterator is GCed, whatever happens earlier.
-
-
Constructor Summary
Constructors Constructor Description IComEnumVariantIterator(EnumVariant backingIteration)
IComEnumVariantIterator wraps the supplied EnumVariant and exposes that as anIterable<Variant.VARIANT>
/Iterator<Variant.VARIANT>
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
protected void
finalize()
boolean
hasNext()
java.util.Iterator<Variant.VARIANT>
iterator()
Variant.VARIANT
next()
void
remove()
static IComEnumVariantIterator
wrap(IDispatch dispatch)
Helper to get new enumeration from anIDispatch
.
-
-
-
Constructor Detail
-
IComEnumVariantIterator
public IComEnumVariantIterator(EnumVariant backingIteration)
IComEnumVariantIterator wraps the supplied EnumVariant and exposes that as anIterable<Variant.VARIANT>
/Iterator<Variant.VARIANT>
. The class takes possion of the supplied EnumVariant. So the EnumVariant is Released when the enumeration is exhausted or the Iterator is GCed.- Parameters:
backingIteration
-
-
-
Method Detail
-
wrap
public static IComEnumVariantIterator wrap(IDispatch dispatch)
Helper to get new enumeration from anIDispatch
.This expects, that the supplied IDispatch has a property identified by a
OaIdl.DISPID
ofOaIdl.DISPID_NEWENUM
- Parameters:
dispatch
- IDispatch to be analysed- Returns:
- IComEnumVariantIterator wrapping the enumeration queried from the supplied object
-
hasNext
public boolean hasNext()
- Specified by:
hasNext
in interfacejava.util.Iterator<Variant.VARIANT>
-
next
public Variant.VARIANT next()
- Specified by:
next
in interfacejava.util.Iterator<Variant.VARIANT>
-
close
public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
-
finalize
protected void finalize() throws java.lang.Throwable
- Overrides:
finalize
in classjava.lang.Object
- Throws:
java.lang.Throwable
-
iterator
public java.util.Iterator<Variant.VARIANT> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<Variant.VARIANT>
-
remove
public void remove()
- Specified by:
remove
in interfacejava.util.Iterator<Variant.VARIANT>
-
-