<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Get GroupLayer Name in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192646#M5011</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am officially out of ideas.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I changed interfaces to ILayer2.&amp;nbsp; Doing so will now print every layer recursively (including the GroupLayer name), except the mosaic layer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The error is on the same line as before, where it seems as though a mosaic is considered a "GroupLayer", but why I can't get the name of it I have no clue.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void printMosaicLayerName(com.esri.arcgis.carto.Map map, AGSConnection agsconn){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILayer2 layer = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UID id = (UID) agsconn.getContext().createObject(UID.getClsid());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id.setValue(com.esri.arcgis.carto.ILayer2.class);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // getLayers(UID, true) uses recursion to the get the layer name in a GroupLayer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnumLayer enumLayer = map.getLayers(id, true);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enumLayer.reset();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = (ILayer2) enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(layer == null)){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(layer.getClass().getName() + " " + layer.getName());&amp;nbsp; &lt;SPAN style="color:#0000ff;"&gt;// this is line #93&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(layer instanceof IMosaicDataset){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MosaicDataset md = (MosaicDataset)layer;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(md.getRelativePath().toString());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = (ILayer2) enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (AutomationException ae) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ae.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (IOException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The output:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;*Note:&amp;nbsp; all the lines prior to the "Caused by:" are related to the UI not loading becuase of this ClassCastException. I expected to see this in the log.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
Jul 31, 2013 7:37:43 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 23085 ms
com.esri.arcgis.carto.FeatureLayer Zoning Case
com.esri.arcgis.carto.GroupLayer Transportation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color:#0000ff;"&gt;// The next 5 layers are part of the Transporation GroupLayer&lt;/SPAN&gt;
com.esri.arcgis.carto.FeatureLayer Residential Streets
com.esri.arcgis.carto.FeatureLayer Major Roads
com.esri.arcgis.carto.FeatureLayer State Highway
com.esri.arcgis.carto.FeatureLayer US Highway
com.esri.arcgis.carto.FeatureLayer Interstates
com.esri.arcgis.carto.FeatureLayer County Boundary
com.esri.arcgis.carto.FeatureLayer Parcels&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color:#0000ff;"&gt;//&amp;nbsp; Right after this layer is the mosaic&lt;/SPAN&gt;
Jul 31, 2013 7:38:16 AM com.sun.faces.application.ActionListenerImpl processAction
SEVERE: java.lang.ClassCastException: A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720
javax.faces.el.EvaluationException: java.lang.ClassCastException: A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.UICommand.broadcast(UICommand.java:311)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassCastException: A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.interop.Dispatch.c(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.interop.Dispatch.vtblInvoke(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.carto.ILayerProxy.getName(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.carto.GroupLayer.getName(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at blah.blah.blah.printMosaicLayerName(MyClassName.java:93)
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 09:40:30 GMT</pubDate>
    <dc:creator>LeoDonahue</dc:creator>
    <dc:date>2021-12-11T09:40:30Z</dc:date>
    <item>
      <title>Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192641#M5006</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;ArcObjects Java 10.0 sp5&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If an IGroupLayer is composed of IFeatureLayers, the following code will print the IGroupLayer name.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If I pass a name that I *think* is an IGroupLayer, my method crashes with null pointer.&amp;nbsp; So, if you have a map document with a mosaic with sub layers: Boundary, Footprint and Image, is that not an IGroupLayer?&amp;nbsp; I've also tried ICompositeLayer also, with the same null pointer result.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If I pass the name of my mosaic layer to the following method, I get a null pointer. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; If pass the name of any other group layer, it will print the parent group name, in this example "Transportation".&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public IGroupLayer getGroupLayerName(com.esri.arcgis.carto.Map map, AGSConnection agsconn){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILayer layer = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UID id = (UID) agsconn.getContext().createObject(UID.getClsid());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id.setValue(com.esri.arcgis.carto.IGroupLayer.class);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // getLayers(UID, true) uses recursion to the get the layer name in a GroupLayer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnumLayer enumLayer = map.getLayers(id, true);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enumLayer.reset();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(layer == null)){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(layer.getName().equalsIgnoreCase("Transportation")){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (AutomationException ae) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ae.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (IOException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(layer.getName());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (AutomationException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (IOException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (IGroupLayer) layer;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This method can find the layer named "Image" located within the Mosaic layer, but I really wanted the name of the mosaic group layer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public IRasterLayer getRasterLayerName(com.esri.arcgis.carto.Map map, AGSConnection agsconn){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILayer layer = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UID id = (UID) agsconn.getContext().createObject(UID.getClsid());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id.setValue(com.esri.arcgis.carto.IRasterLayer.class);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // getLayers(UID, true) uses recursion to the get the layer name in a GroupLayer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnumLayer enumLayer = map.getLayers(id, true);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enumLayer.reset();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(layer == null)){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(layer.getName().equalsIgnoreCase("Image")){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (AutomationException ae) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ae.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (IOException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (IRasterLayer) layer;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Jul 2013 17:00:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192641#M5006</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2013-07-29T17:00:04Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192642#M5007</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I don't know if you found your answer, but can't you get this through IMosaicLayer interface?--&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://help.arcgis.com/en/sdk/10.0/java_ao_adf/api/arcobjects/com/esri/arcgis/carto/IMosaicLayer.html"&gt;http://help.arcgis.com/en/sdk/10.0/java_ao_adf/api/arcobjects/com/esri/arcgis/carto/IMosaicLayer.html&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Jul 2013 17:27:36 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192642#M5007</guid>
      <dc:creator>T__WayneWhitley</dc:creator>
      <dc:date>2013-07-29T17:27:36Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192643#M5008</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Wayne,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe?&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think my problem is that I have two&amp;nbsp; group layers in my map document.&amp;nbsp; One is a transportation group layer,&amp;nbsp; based on feature layers and the other is a mosaic layer, and I"m using:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;IEnumLayer enumLayer = map.getLayers(id, true);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Apparently this does not work for GroupLayers that are MosaicLayers.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I run the following code, the while loop prints: "Transporation is not an instance of MosaicLayer", but then the while loop terminates after that because layer is now null.&amp;nbsp; It's not picking up the MosaicLayer at all.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;All I want is to get the Mosaic layer and set its visibility to false.&amp;nbsp; I can't even get the name of the Mosaic Layer without either null pointers or messages indicating that GroupLayer.getName() is unknown.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public ILayer getGroupLayerName(com.esri.arcgis.carto.Map map, AGSConnection agsconn){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILayer layer = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UID id = (UID) agsconn.getContext().createObject(UID.getClsid());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id.setValue(com.esri.arcgis.carto.IGroupLayer.class);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // getLayers(UID, true) uses recursion to the get the layer name in a GroupLayer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnumLayer enumLayer = map.getLayers(id, true);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enumLayer.reset();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(layer == null)){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(layer instanceof MosaicLayer){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(layer.getName().equalsIgnoreCase("Aerial2011Sep_2011Oct_Ortho")){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(((MosaicLayer) layer).getName());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(layer.getName() + " is not an instance of MosaicLayer");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (AutomationException ae) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ae.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (IOException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (ILayer) layer;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 09:40:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192643#M5008</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2021-12-11T09:40:25Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192644#M5009</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I think this is impossible in Java.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If I don't append the getName method call, this code will print "com.esri.arcgis.carto.GroupLayer" twice.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So I guess, a mosaic dataset added from a FGDB is a GroupLayer?&amp;nbsp; I don't see that connection in the API.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IGroupLayer has no base class for mosaics.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ICompositeLayer does though.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Once I append the getName method call, this code will print:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
INFO: Server startup in 23074 ms
com.esri.arcgis.carto.GroupLayer Transportation&amp;nbsp; &lt;SPAN style="color:#0000ff;"&gt;// yes!&amp;nbsp; this is one of the group layers&lt;/SPAN&gt;
Jul 29, 2013 3:46:51 PM com.sun.faces.application.ActionListenerImpl processAction
SEVERE: java.lang.ClassCastException: A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720
javax.faces.el.EvaluationException: java.lang.ClassCastException: A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.UICommand.broadcast(UICommand.java:311)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassCastException: A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.interop.Dispatch.c(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.interop.Dispatch.vtblInvoke(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.carto.ILayerProxy.getName(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.carto.GroupLayer.getName(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at blah.blah.blah.printMosaicLayerName(MyClassName.java:92)
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Line 92 is highlighted below in red.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void printMosaicLayerName(com.esri.arcgis.carto.Map map, AGSConnection agsconn){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILayer layer = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UID id = (UID) agsconn.getContext().createObject(UID.getClsid());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id.setValue(com.esri.arcgis.carto.ICompositeLayer.class);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // getLayers(UID, true) uses recursion to the get the layer name in a GroupLayer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnumLayer enumLayer = map.getLayers(id, true);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enumLayer.reset();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = (ILayer) enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(layer == null)){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color:#ff0000;"&gt;System.out.println(layer.getClass().getName() + " " + layer.getName());&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = (ILayer) enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (AutomationException ae) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ae.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (IOException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 09:40:28 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192644#M5009</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2021-12-11T09:40:28Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192645#M5010</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I may be oversimplifying but I thought the mosaic layer was considered a 'special layer', not a run-of-the-mill composite layer.&amp;nbsp; And as such, special access has been provided?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Not that I know this is a good suggestion (or for that matter am I qualified enough to write the code), but ILayer2 is documented in the 'All Known Implementing Classes' to include the MosaicLayer class.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://help.arcgis.com/en/sdk/10.0/java_ao_adf/api/arcobjects/com/esri/arcgis/carto/ILayer2.html"&gt;http://help.arcgis.com/en/sdk/10.0/java_ao_adf/api/arcobjects/com/esri/arcgis/carto/ILayer2.html&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Theoretically, via the MosaicLayer class, you will have the proper access to the setVisible method (and getName() too).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I may be all wrong about this, but was interested in case you're out of ideas...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-Wayne&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 30 Jul 2013 01:20:24 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192645#M5010</guid>
      <dc:creator>T__WayneWhitley</dc:creator>
      <dc:date>2013-07-30T01:20:24Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192646#M5011</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am officially out of ideas.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I changed interfaces to ILayer2.&amp;nbsp; Doing so will now print every layer recursively (including the GroupLayer name), except the mosaic layer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The error is on the same line as before, where it seems as though a mosaic is considered a "GroupLayer", but why I can't get the name of it I have no clue.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void printMosaicLayerName(com.esri.arcgis.carto.Map map, AGSConnection agsconn){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILayer2 layer = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UID id = (UID) agsconn.getContext().createObject(UID.getClsid());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id.setValue(com.esri.arcgis.carto.ILayer2.class);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // getLayers(UID, true) uses recursion to the get the layer name in a GroupLayer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnumLayer enumLayer = map.getLayers(id, true);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enumLayer.reset();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = (ILayer2) enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(layer == null)){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(layer.getClass().getName() + " " + layer.getName());&amp;nbsp; &lt;SPAN style="color:#0000ff;"&gt;// this is line #93&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(layer instanceof IMosaicDataset){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MosaicDataset md = (MosaicDataset)layer;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(md.getRelativePath().toString());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = (ILayer2) enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (AutomationException ae) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ae.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (IOException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The output:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;*Note:&amp;nbsp; all the lines prior to the "Caused by:" are related to the UI not loading becuase of this ClassCastException. I expected to see this in the log.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
Jul 31, 2013 7:37:43 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 23085 ms
com.esri.arcgis.carto.FeatureLayer Zoning Case
com.esri.arcgis.carto.GroupLayer Transportation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color:#0000ff;"&gt;// The next 5 layers are part of the Transporation GroupLayer&lt;/SPAN&gt;
com.esri.arcgis.carto.FeatureLayer Residential Streets
com.esri.arcgis.carto.FeatureLayer Major Roads
com.esri.arcgis.carto.FeatureLayer State Highway
com.esri.arcgis.carto.FeatureLayer US Highway
com.esri.arcgis.carto.FeatureLayer Interstates
com.esri.arcgis.carto.FeatureLayer County Boundary
com.esri.arcgis.carto.FeatureLayer Parcels&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color:#0000ff;"&gt;//&amp;nbsp; Right after this layer is the mosaic&lt;/SPAN&gt;
Jul 31, 2013 7:38:16 AM com.sun.faces.application.ActionListenerImpl processAction
SEVERE: java.lang.ClassCastException: A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720
javax.faces.el.EvaluationException: java.lang.ClassCastException: A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.UICommand.broadcast(UICommand.java:311)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassCastException: A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.interop.Dispatch.c(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.interop.Dispatch.vtblInvoke(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.carto.ILayerProxy.getName(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.carto.GroupLayer.getName(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at blah.blah.blah.printMosaicLayerName(MyClassName.java:93)
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 09:40:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192646#M5011</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2021-12-11T09:40:30Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192647#M5012</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;If I remove the call to getName from line 93, it will print the following:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;System.out.println(layer.getClass().getName() );&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
com.esri.arcgis.carto.FeatureLayer
com.esri.arcgis.carto.GroupLayer
com.esri.arcgis.carto.FeatureLayer
com.esri.arcgis.carto.FeatureLayer
com.esri.arcgis.carto.FeatureLayer
com.esri.arcgis.carto.FeatureLayer
com.esri.arcgis.carto.FeatureLayer
com.esri.arcgis.carto.FeatureLayer
com.esri.arcgis.carto.FeatureLayer
com.esri.arcgis.carto.GroupLayer
com.esri.arcgis.carto.FeatureLayer
com.esri.arcgis.carto.FeatureLayer
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This tells me I have a "GroupLayer" class.&amp;nbsp; Now why can't I get the name of it?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]26345[/ATTACH]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 09:40:33 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192647#M5012</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2021-12-11T09:40:33Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192648#M5013</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;That's interesting --- I haven't experimented with this yet and frankly I haven't fiddled with ArcObjects in awhile, but according to the arcobjects (and arcgis desktop) documentation, a mosaic layer is a 'special entity'.&amp;nbsp; Conceptually, I'm still trying to wrap my head around this but I think the same group or composite layer methods do not apply to this type of layer, the mosaic layer....why I think the mosaiclayer co-class was made; however, how do you use those methods?&amp;nbsp; I'll try to find some examples, I think even some VB.net examples may help you since good Java examples seem to be lacking.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Very interesting problem, I have to say.&amp;nbsp; Please post the answer if you find it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-Wayne&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jul 2013 14:50:38 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192648#M5013</guid>
      <dc:creator>T__WayneWhitley</dc:creator>
      <dc:date>2013-07-31T14:50:38Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192649#M5014</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;....however, how do you use those methods? &lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For IGroupLayer or IFeatureLayer or IRasterLayer, I can get the name.&amp;nbsp; It seems as though if the group layer is a mosaic group layer, I can't get the name.&amp;nbsp; These layers are in a published map in ArcGIS Server.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Originally, I just wanted to find the layer in the TOC by name, and toggle the visibility.&amp;nbsp; My original post shows how I'm going around this by getting the feature layer named "Image" (which is part of the mosaic group layer) using this method:&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro"&gt;public IRasterLayer getRasterLayerName(com.esri.arcgis.carto.Map map, AGSConnection agsconn)&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But no, I'm stubborn, I have to waste time figuring out why I can't do something easy - because it's bugging me.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I suppose I can rename the "Image" part of the mosaic layer to the mosaic layer group name, in case I add additional mosaics to this project in the future.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This really started out as a simple project, a web app to generate zoning case maps dynamically using iText and extracting the feature attributes from a separate enterprise database into the pdf.&amp;nbsp; It's been working fine for weeks.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then came the final "last minute" requirement:&amp;nbsp; "Can we let the user toggle the aerial photos on/off ?"&amp;nbsp; Sounds easy... hahaha..&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The UI:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]26350[/ATTACH]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jul 2013 15:26:27 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192649#M5014</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2013-07-31T15:26:27Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192650#M5015</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I'm not at all familiar with Java, but if you'll forgive me 'dumbing' this down for a moment, I'm interested in this mosaic layer 'thing'.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This may not be implemented in Java the same way, but I did some rudimentary 'quick' testing in VBA and it seems if looping through the layers in the TOC to get the layer name, let's say, then you can test if a composite layer AND mosaic layer...and via ILayer (or ILayer2) toggle visibility off (or query the layer name, etc., if need be beforehand).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And if you 'cast' (if I'm using the term correctly) the ILayer object as an IMosaicLayer object, then there's access to the Boundary, Footprint, Raster Dataset Mosaic 'sublayers' -- probably this VB below is easy for you to follow (again, no idea how this is implemented in Java).&amp;nbsp; What I did (without bothering to auto-refresh the view/TOC in ArcMap) is in successive runs, prove that the ILayer 'handle' works to turn on/off the Mosaic layer and IMosaicLayer 'handle' works to turn on/off the sub layers associated with the Mosaic layer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I apologize for my clumsy explanation, but maybe this will help and I'd be interested to know if this 'translates' or is applicable to what you're doing in Java (code window below).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Please post if you have anything different - I'd like to see the Java code solution.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Enjoy,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Wayne&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
Public Sub ToggleMosaicLayerVis()
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pMxDoc As IMxDocument
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pMxDoc = ThisDocument

&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pCpsLyr As ILayer2&amp;nbsp; 'ILayer works too
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 'accessing 1st layer in TOC; incidentally a mosaic layer
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pCpsLyr = pMxDoc.FocusMap.Layer(0)

&amp;nbsp;&amp;nbsp;&amp;nbsp; 'this works, but obviously did not apply any layer prop testing
&amp;nbsp;&amp;nbsp;&amp;nbsp; If pCpsLyr.Visible = True Then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pCpsLyr.Visible = False
&amp;nbsp;&amp;nbsp;&amp;nbsp; Else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pCpsLyr.Visible = True
&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Print "Your 'composite mosaic' layer name = " &amp;amp; pCpsLyr.Name
&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Print "...and the layer visibility is set " &amp;amp; pCpsLyr.Visible
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; ' some interesting lyr testing; both composite and mosaic tested true
&amp;nbsp;&amp;nbsp;&amp;nbsp; If TypeOf pCpsLyr Is IMosaicLayer Then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Print "True mosaic"
&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&amp;nbsp;&amp;nbsp;&amp;nbsp; If TypeOf pCpsLyr Is ICompositeLayer Then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Print "True composite"
&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&amp;nbsp;&amp;nbsp;&amp;nbsp; If TypeOf pCpsLyr Is IFeatureLayer Then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Print "True feature"
&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; ' stupid pet trick to see how ILayer2 obj is extended as IMosaicLayer obj
&amp;nbsp;&amp;nbsp;&amp;nbsp; ' now access is extended to set visibility on sublayers associated with mosaic lyr
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pMscLyr As IMosaicLayer
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pMscLyr = pCpsLyr
&amp;nbsp;&amp;nbsp;&amp;nbsp; If pCpsLyr.Visible = True Then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If pMscLyr.BoundaryLayer.Visible = True Then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMscLyr.BoundaryLayer.Visible = False
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else: pMscLyr.BoundaryLayer.Visible = True
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&amp;nbsp;&amp;nbsp;&amp;nbsp; End If

&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Debug.Print pMscLyr.MosaicDataset.VisibleFields
&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Debug.Print pMscLyr.PreviewLayer.Name
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
End Sub
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This concludes this oversimplification, for what it's worth.... and by the way, these are the debug print statements (run twice of course):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Your 'composite mosaic' layer name = testMosaicDS_MosaicLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;...and the layer visibility is set True&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;True mosaic&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;True composite&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Your 'composite mosaic' layer name = testMosaicDS_MosaicLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;...and the layer visibility is set False&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;True mosaic&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;True composite&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 09:40:36 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192650#M5015</guid>
      <dc:creator>T__WayneWhitley</dc:creator>
      <dc:date>2021-12-11T09:40:36Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192651#M5016</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I published a new map document to ArcGIS Server with two layers.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The first layer is a FeatureLayer (index 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The second layer is the mosaic dataset (index 1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro"&gt;System.out.println(agsconn.getMap().getLayer(1).getName());&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I get the same errors I have posted before.&amp;nbsp; Basically... IGroupLayer.getName(unknown source)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If I really have an IGroupLayer, I can't cast it to a MosaicLayer.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Known implementing classes for IGroupLayer are: BasemapLayer, GroupLayer and IGroupLayerProxy&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Was your VBA example reading a map document "not" published to ArcGIS Server?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jul 2013 19:16:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192651#M5016</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2013-07-31T19:16:12Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192652#M5017</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You're outreaching me - yes, my example was simply a test confined to the parent mxd, no publishing to the server.&amp;nbsp; But I would think the same would apply, provided implemented in Java similarly (I don't know).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You said IGroupLayer --- I didn't use this but engineered backward I guess since IMosaicLayer implements ILayer (or ILayer2) - maybe I said this backwards?&amp;nbsp; I cast ILayer2 as IMosaicLayer with this line:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pMscLyr = pCpsLyr&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But that's incidental - I first started with ILayer2 obj with a test for the layer whether IMosaicLayer, this line:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If TypeOf pCpsLyr Is IMosaicLayer Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;...which of course tests true (you could additionally test the Name property, if that's what you need).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And pCpsLyr was set up with this (left in the 2nd line, a comment):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim pCpsLyr As ILayer2&amp;nbsp; 'ILayer works too&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;'accessing 1st layer in TOC; incidentally a mosaic layer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Set pCpsLyr = pMxDoc.FocusMap.Layer(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The rest of the code was dinking around the sub-layers of the 'composite layer', if you will.&amp;nbsp; According to how the code executed, the mosaic layer is &lt;/SPAN&gt;&lt;SPAN style="text-decoration:underline;"&gt;both&lt;/SPAN&gt;&lt;SPAN&gt; a composite and mosaic layer, hence the term I used earlier 'special' (and special arcobject methods are provided beginning at 10.0).&amp;nbsp; I don't know about your group layer approach...I didn't try that, but notice in my code the test for featurelayer did not return True.&amp;nbsp; That's comforting (although not really conclusive) that the testing of layer type seems to be working....I know in debug mode I have seen false returns noted and I don't know if that applies here in the way I used it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Like I said though, hope I am not way off-base here since I know really nothing of Java.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope that helps a little...where is Neil when you need him?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Wayne&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EDIT:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I appended a statement to test for IGroupLayer and it does NOT return true....so my guess is that is why you cannot use IMosaicLayer.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jul 2013 19:54:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192652#M5017</guid>
      <dc:creator>T__WayneWhitley</dc:creator>
      <dc:date>2013-07-31T19:54:10Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192653#M5018</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;So the answer to your original question:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So, if you have a map document with a mosaic with sub layers: Boundary, Footprint and Image, is that not an IGroupLayer? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;No, it is not; it is a member of ICompositeLayer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;...you tried that too???&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EDIT-&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm having a hard time reading your code - just curious why are you using IMosaicDataset in this line:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if(layer instanceof IMosaicDataset&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jul 2013 20:06:11 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192653#M5018</guid>
      <dc:creator>T__WayneWhitley</dc:creator>
      <dc:date>2013-07-31T20:06:11Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192654#M5019</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void printMosaicLayerName(com.esri.arcgis.carto.Map map, AGSConnection agsconn){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILayer2 layer = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UID id = (UID) agsconn.getContext().createObject(UID.getClsid());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id.setValue(com.esri.arcgis.carto.ILayer2.class);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // getLayers(UID, true) uses recursion to the get the layer name in a GroupLayer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnumLayer enumLayer = map.getLayers(id, true);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enumLayer.reset();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = (ILayer2) enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(layer == null)){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(layer.getClass().getName() + " " + layer.getName());&amp;nbsp; &lt;SPAN style="color:#0000ff;"&gt;// this is line #93&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(layer instanceof IMosaicDataset){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MosaicDataset md = (MosaicDataset)layer;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(md.getRelativePath().toString());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = (ILayer2) enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (AutomationException ae) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ae.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (IOException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;The output:&lt;BR /&gt;&lt;BR /&gt;*Note:&amp;nbsp; all the lines prior to the "Caused by:" are related to the UI not loading becuase of this ClassCastException. I expected to see this in the log.&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
Jul 31, 2013 7:37:43 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 23085 ms
com.esri.arcgis.carto.FeatureLayer Zoning Case
com.esri.arcgis.carto.GroupLayer Transportation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color:#0000ff;"&gt;// The next 5 layers are part of the Transporation GroupLayer&lt;/SPAN&gt;
com.esri.arcgis.carto.FeatureLayer Residential Streets
com.esri.arcgis.carto.FeatureLayer Major Roads
com.esri.arcgis.carto.FeatureLayer State Highway
com.esri.arcgis.carto.FeatureLayer US Highway
com.esri.arcgis.carto.FeatureLayer Interstates
com.esri.arcgis.carto.FeatureLayer County Boundary
com.esri.arcgis.carto.FeatureLayer Parcels&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color:#0000ff;"&gt;//&amp;nbsp; Right after this layer is the mosaic&lt;/SPAN&gt;
Jul 31, 2013 7:38:16 AM com.sun.faces.application.ActionListenerImpl processAction
SEVERE: java.lang.ClassCastException: A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720
javax.faces.el.EvaluationException: java.lang.ClassCastException: A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.UICommand.broadcast(UICommand.java:311)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassCastException: A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.interop.Dispatch.c(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.interop.Dispatch.vtblInvoke(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.carto.ILayerProxy.getName(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.carto.GroupLayer.getName(Unknown Source)
&amp;nbsp;&amp;nbsp;&amp;nbsp; at blah.blah.blah.printMosaicLayerName(MyClassName.java:93)
&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Let's back up to here for a sec... in your code, looks like the faulty line, as you noted in red, is where you are using IMosaicDataset with ILayer2.&amp;nbsp; I think that isn't going to work - shouldn't that be where IMosaicLayer is entered?&amp;nbsp; You simply want the ability to toggle the layer off, correct, and refresh the map service?&amp;nbsp; With ILayer2, you can toggle the layer on/off; with IMosaicLayer, you can determine whether 'layer' (an ILayer2 obj) is an instance.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;...all in theory.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Enjoy,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Wayne&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 09:40:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192654#M5019</guid>
      <dc:creator>T__WayneWhitley</dc:creator>
      <dc:date>2021-12-11T09:40:39Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192655#M5020</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;In post #3, I tested for an instance of MosaicLayer, but that test never ran.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In post #6, I tested for an instance of MosaicDataset, and that test never ran.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In post #7, the code shows that I have a GroupLayer, and all I'm doing there is printing the class name.&amp;nbsp; Once I try getting the name of the GroupLayer (that is really a mosaic), it produces an error.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In post #1, I indicated I tried the ICompositeLayer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The stack trace doesn't give me class names in my cast exception, just some cryptic string names.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What this tells me is that certain code reports I have a GroupLayer, but in fact, I do not, due to this cast exception.&amp;nbsp; But I can't tell what classes these iid's are.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

Caused by: java.lang.ClassCastException: &lt;STRONG&gt;A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720&lt;/STRONG&gt; 
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 09:40:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192655#M5020</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2021-12-11T09:40:41Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192656#M5021</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I think you may have had it at #3, but shouldn't that be the following? :&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;layer instanceof &lt;/SPAN&gt;&lt;SPAN style="text-decoration:underline;"&gt;I&lt;/SPAN&gt;&lt;SPAN&gt;MosaicLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;...not:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;layer instanceof MosaicLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;That's all I've got...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Wayne&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EDIT:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I guess the difference you're looking at is IMosaicLayer is com.esri.arcgis.carto; MosaicLayer is com.esri.arcgis.carto.MosaicLayer.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jul 2013 21:39:53 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192656#M5021</guid>
      <dc:creator>T__WayneWhitley</dc:creator>
      <dc:date>2013-07-31T21:39:53Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192657#M5022</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;IMosaicLayer only has two implementing classes.&amp;nbsp; IMosaicLayerProxy and MosaicLayer.&amp;nbsp; I should be able to test an instanceof MosaicLayer, right?&amp;nbsp; MosaicLayer implements IMosaicLayer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And if you look at the implemented interfaces of MosaicLayer... this is what I don't get.&amp;nbsp; If GroupLayer is not an implemented interface of MosaicLayer, why is certain code telling me I have a GroupLayer?&amp;nbsp; This is the confusing part.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;&lt;BR /&gt;&lt;SPAN style="font-size:-1;"&gt;com.esri.arcgis.carto&lt;/SPAN&gt;&lt;BR /&gt;Class MosaicLayer&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true"&gt;java.lang.Object&lt;/A&gt;&amp;nbsp;&amp;nbsp; &lt;IMG src="http://forums.arcgis.../../../resources/inherit.gif" /&gt;&lt;STRONG&gt;com.esri.arcgis.carto.MosaicLayer&lt;/STRONG&gt; &lt;STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;All Implemented Interfaces:&lt;/STRONG&gt; &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/IAttributeTable.html"&gt;IAttributeTable&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ICompositeLayer.html"&gt;ICompositeLayer&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ICompositeLayer2.html"&gt;ICompositeLayer2&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/IDataLayer.html"&gt;IDataLayer&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/IDataLayer2.html"&gt;IDataLayer2&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/IIdentify.html"&gt;IIdentify&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/IIdentify2.html"&gt;IIdentify2&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ILayer.html"&gt;ILayer&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ILayer2.html"&gt;ILayer2&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ILayerDrawingProperties.html"&gt;ILayerDrawingProperties&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ILayerEffects.html"&gt;ILayerEffects&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ILayerExtensions.html"&gt;ILayerExtensions&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ILayerGeneralProperties.html"&gt;ILayerGeneralProperties&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ILayerInfo.html"&gt;ILayerInfo&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ILayerMasking.html"&gt;ILayerMasking&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ILayerPosition.html"&gt;ILayerPosition&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ILayerSymbologyExtents.html"&gt;ILayerSymbologyExtents&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/IMosaicLayer.html"&gt;IMosaicLayer&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/IPublishLayer.html"&gt;IPublishLayer&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ITableDefinition.html"&gt;ITableDefinition&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ITimeData.html"&gt;ITimeData&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ITimeDataDisplay.html"&gt;ITimeDataDisplay&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/carto/ITimeTableDefinition.html"&gt;ITimeTableDefinition&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/datasourcesraster/IRasterDataManagementEvents.html"&gt;IRasterDataManagementEvents&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/display/IConnectionPointContainer.html"&gt;IConnectionPointContainer&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/display/IDisplayAdmin.html"&gt;IDisplayAdmin&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/display/IDisplayAdmin2.html"&gt;IDisplayAdmin2&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/display/IDisplayFilterManager.html"&gt;IDisplayFilterManager&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/geodatabase/IDataset.html"&gt;IDataset&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/geodatabase/IGeoDataset.html"&gt;IGeoDataset&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/geodatabase/IWorkspaceEditEvents.html"&gt;IWorkspaceEditEvents&lt;/A&gt;, com.esri.arcgis.interop.RemoteObjRef, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/system/IClassID.html"&gt;IClassID&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/system/IPersist.html"&gt;IPersist&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/system/IPersistStream.html"&gt;IPersistStream&lt;/A&gt;, &lt;A href="http://forums.arcgis.../../../com/esri/arcgis/system/ISupportErrorInfo.html"&gt;ISupportErrorInfo&lt;/A&gt;, &lt;A href="http://java.sun.com/j2se/1.5.0/docs/api/java/io/Externalizable.html?is-external=true"&gt;Externalizable&lt;/A&gt;, &lt;A href="http://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html?is-external=true"&gt;Serializable&lt;/A&gt;, &lt;A href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/EventListener.html?is-external=true"&gt;EventListener&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jul 2013 21:52:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192657#M5022</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2013-07-31T21:52:03Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192658#M5023</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;&lt;BR /&gt;That's all I've got...&lt;BR /&gt;Wayne&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;I appreciate your time batting some ideas around with me.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jul 2013 21:54:09 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192658#M5023</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2013-07-31T21:54:09Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192659#M5024</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Of course... I am acutely interested in this, you might say - actually wish I could do this type thing all of the time, provided I get to keep my marbles by the end of the day!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I guess in your investigations you revisited the below thread, although it applies to VB.NET, I think it still has implications for Java:&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://forums.arcgis.com/threads/47631-Why-is-everything-a-Mosaic-Layer?#5"&gt;http://forums.arcgis.com/threads/47631-Why-is-everything-a-Mosaic-Layer?#5&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;...actually, you responded to this back a yr ago January.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thought this curious false for typeof return on IMosaicLayer; true on MosaicLayer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This works similarly in VBA, as I proved...might not be so in Java.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-Wayne&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;PS - I was looking at this too (below), but I don't follow it well...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Casting and runtime type checking (using instanceof)&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://resources.arcgis.com/en/help/arcobjects-java/concepts/engine/index.html#//0001000006mw000000"&gt;http://resources.arcgis.com/en/help/arcobjects-java/concepts/engine/index.html#//0001000006mw000000&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jul 2013 22:09:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192659#M5024</guid>
      <dc:creator>T__WayneWhitley</dc:creator>
      <dc:date>2013-07-31T22:09:29Z</dc:date>
    </item>
    <item>
      <title>Re: Get GroupLayer Name</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192660#M5025</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I've come to the conclusion that I can not get the name of mosaic that has been added to my map document published in ArcGIS Server. But I can get the names of the layers in the mosaic.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It appears as though a mosaic is a GroupLayer containing two FeatureLayers and one ImageServiceLayer, but I can't get the name of the GroupLayer when it's a mosaic.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For what it's worth....&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The method:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void printMosaicLayerName(com.esri.arcgis.carto.Map map, AGSConnection agsconn){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILayer layer = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UID id = (UID) agsconn.getContext().createObject(UID.getClsid());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id.setValue(ILayer.class);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // getLayers(UID, true) uses recursion to the get the layer name in a GroupLayer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnumLayer enumLayer = map.getLayers(id, true);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enumLayer.reset();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(layer == null)){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(layer.getClass().getName());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //System.out.println(layer.getName());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("ILayer?: " + (layer instanceof ILayer));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("IGroupLayer?: " + (layer instanceof IGroupLayer));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("IMosaicLayer?: " + (layer instanceof IMosaicLayer));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("------------------------------------");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = enumLayer.next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (AutomationException ae) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ae.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (IOException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Ouput when not calling layer.getName()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;com.esri.arcgis.carto.FeatureLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ILayer?: true&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IGroupLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IMosaicLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;com.esri.arcgis.carto.GroupLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ILayer?: true&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IGroupLayer?: true&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IMosaicLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;com.esri.arcgis.carto.FeatureLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ILayer?: true&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IGroupLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IMosaicLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;com.esri.arcgis.carto.FeatureLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ILayer?: true&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IGroupLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IMosaicLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;com.esri.arcgis.carto.FeatureLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ILayer?: true&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IGroupLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IMosaicLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;com.esri.arcgis.carto.FeatureLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ILayer?: true&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IGroupLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IMosaicLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;com.esri.arcgis.carto.FeatureLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ILayer?: true&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IGroupLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IMosaicLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;com.esri.arcgis.carto.FeatureLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ILayer?: true&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IGroupLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IMosaicLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;com.esri.arcgis.carto.FeatureLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ILayer?: true&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IGroupLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IMosaicLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;com.esri.arcgis.carto.GroupLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ILayer?: true&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IGroupLayer?: true&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IMosaicLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;com.esri.arcgis.carto.FeatureLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ILayer?: true&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IGroupLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IMosaicLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;com.esri.arcgis.carto.FeatureLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ILayer?: true&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IGroupLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IMosaicLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;com.esri.arcgis.carto.ImageServerLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ILayer?: true&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IGroupLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IMosaicLayer?: false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Result of uncommenting the line of:&amp;nbsp; layer.getName()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;com.esri.arcgis.carto.GroupLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Aug 1, 2013 8:32:06 AM com.sun.faces.application.ActionListenerImpl processAction&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SEVERE: java.lang.ClassCastException: A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;javax.faces.el.EvaluationException: java.lang.ClassCastException: A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.UICommand.broadcast(UICommand.java:311)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.Thread.run(Thread.java:662)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Caused by: java.lang.ClassCastException: A COM object reference via iid 34c20002-4d3c-11d0-92d8-00805f7c28b0 does not support COM interface edad6644-1810-11d1-86ae-0000f8751720&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.interop.Dispatch.c(Unknown Source)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.interop.Dispatch.vtblInvoke(Unknown Source)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.carto.ILayerProxy.getName(Unknown Source)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.esri.arcgis.carto.GroupLayer.getName(Unknown Source)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I googled for those string values in the ClassCastException.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The Caused by line is saying: A COM object reference via iid ILayer does not support COM interface IGroupLayer - um what?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 09:40:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-grouplayer-name/m-p/192660#M5025</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2021-12-11T09:40:44Z</dc:date>
    </item>
  </channel>
</rss>

